Die*_*jon 9 javascript replace
我在将播放器上传到服务器时出现此错误,因为在本地它工作正常。
让我解释一下,播放器在本地显示正在播放的歌曲、即将播放的歌曲和已经播放的歌曲,但是上传到服务器时出现以下错误: Uncaught TypeError: Cannot read properties of undefined (在以下代码行中阅读 'replace' ),但我不太明白为什么。我想知道您是否可以指导我完成这个项目并交付它,提前致谢。
let song = data.currentSong.replace(/'/g, '\'');
currentSong = song.replace(/&/g, '&');
let artist = data.currentArtist.replace(/'/g, '\'');
currentArtist = artist.replace(/&/g, '&');
Run Code Online (Sandbox Code Playgroud)
小智 12
在您的示例中,仅当您的变量和/或未定义时Uncaught TypeError: Cannot read properties of undefined (reading 'replace' )才会发生。songartist
这意味着它们中的一个data.currentSong或两个都会给你带来不确定的结果。data.currentArtist
回答您的问题:
网络服务器和本地服务器之间可能存在一些差异。例如,有时本地服务器的 jQuery 版本与 Web 服务器不同。如果您可以分享负责获取数据的代码,则可以找到问题的确切根源。
小智 10
我有同样的错误,我像这样修复了它:
前:
localizeDate(date) {
date = date.replace("T", "/");
return date.replace(".000000Z", "");
},
Run Code Online (Sandbox Code Playgroud)
后:
localizeDate(date) {
if(!date) return
date = date.replace("T", "/");
return date.replace(".000000Z", "");
},
Run Code Online (Sandbox Code Playgroud)
问题是该函数在从服务器加载任何数据之前被调用。
您还可以使用 Promises、async/wait 或 loader 来修复它。