Uncaught TypeError: Cannot read properties of undefined (reading 'replace')

Uncaught TypeError: Cannot read properties of undefined (reading 'replace')

我在将播放器上传到服务器时出现此错误,因为它在本地运行正常。

稍微解释一下,播放器本地显示正在播放的歌曲,即将播放的歌曲和已经播放的歌曲,但是上传到服务器时出现以下错误:Uncaught TypeError: Cannot在以下代码行中读取未定义的属性(读取 'replace' ),但我不完全明白为什么。我想知道你是否可以指导我完成这个项目并交付它,在此先感谢。

 let song = data.currentSong.replace(/'/g, '\'');
    currentSong = song.replace(/&/g, '&');

    let artist = data.currentArtist.replace(/'/g, '\'');
    currentArtist = artist.replace(/&/g, '&');

在你的例子中 Uncaught TypeError: Cannot read properties of undefined (reading 'replace' ) 只有当你的变量 song and/or artistundefined.

这意味着 data.currentSongdata.currentArtist 或两者都会得到未定义的结果。

您问题的答案:
Web 服务器和本地服务器之间可能存在一些差异。例如,有时本地服务器的 jQuery 版本与 Web 服务器不同。如果您可以共享负责获取数据的代码,则可以找到问题的确切来源。

我遇到了同样的错误,我是这样修复的:

之前:

 localizeDate(date) {
   date = date.replace("T", "/");
   return date.replace(".000000Z", "");
 },

之后:

localizeDate(date) {
  if(!date) return
  date = date.replace("T", "/");
  return date.replace(".000000Z", "");
},

问题是在从服务器加载任何数据之前调用了该函数。

您也可以使用 Promises、async/wait 或加载器修复它。