未捕获的类型错误:无法读取未定义的属性(读取“replace”)
2021-09-06
173031
我将播放器上传到服务器时出现此错误,因为在本地它可以正常工作。
让我解释一下,播放器在本地显示正在播放的歌曲、即将播放的歌曲和已经播放的歌曲,但在上传到服务器时出现以下错误:Uncaught TypeError:无法读取未定义的属性(读取“replace”)在以下代码行中,但我不太明白为什么。我想知道您是否可以指导我完成这个项目并交付它,提前谢谢您。
let song = data.currentSong.replace(/'/g, '\'');
currentSong = song.replace(/&/g, '&');
let artist = data.currentArtist.replace(/'/g, '\'');
currentArtist = artist.replace(/&/g, '&');
2个回答
我遇到了同样的错误,我是这样修复的:
之前:
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 或加载器来修复它。
Asyia
2022-05-09
在您的示例中,仅当您的变量
song
和/或
artist
为
undefined
时,才会发生
Uncaught TypeError: Cannot read properties of undefined (reading 'replace' )
。
这意味着
data.currentSong
或
data.currentArtist
或两者均会得到未定义的结果。
回答您的问题:
Web 服务器和本地服务器之间可能存在一些差异。例如,有时本地服务器的 jQuery 版本与 Web 服务器不同。如果您可以分享负责获取数据的代码,则可以找到问题的确切来源。
Fluent-Themes
2021-09-11