创建新图像时,jQuery具有以下行为:
$('img').attr('src','http://example.com/notexist.png').appendTo('body')
出现以下错误消息:
GET http://example.com/%E2%80%8Bnotexist.png 404 (Not Found)
我期待404,但网址不正确 - 请注意斜杠附近的额外编码 - 如何停止此操作并正确设置'src'?
答案 0 :(得分:2)
斜杠后面有一个zero-width space字符(在UTF-8中编码为E2 80 8B
)。
您应该删除该字符。如果您因为无法看到它而无法做到这一点,请考虑从头开始重新输入整个URL。
答案 1 :(得分:1)
'/'和'notexist.png'之间实际上有一个字符,所以我相信jQuery是正确的。请注意您的帖子中链接未完全突出显示的方式。
根据Chrome开发者工具,该字符为​
答案 2 :(得分:1)
正如弗雷德里克所提到的,你在文件名之前有一个编码字符,这就是你得到这个错误的原因。你可能会从那里用那些字符复制那个src。你应该摆脱编码的东西或自己写URL。
但即使使用有效的URL,你的jquery仍会失败。 appendTo的正确方法是首先创建jquery元素,然后添加它。
方法1:
$('<img src="http://example.com/notexist.png"/>').appendTo('body');
方法2:
$('<img />').attr('src','http://example.com/notexist.png').appendTo('body');
这是一个jsfiddle链接,用于说明工作方式和非工作方法: http://jsfiddle.net/R7U5H/2/