创建新图像时,jQuery 具有以下行为:
$('img').attr('src','http://example.com/notexist.png').appendTo('body')
出现以下错误消息:
GET http://example.com/%E2%80%8Bnotexist.png 404 (Not Found)
我期待 404,但 URL 不正确 -请注意斜杠周围的额外编码- 我怎样才能阻止它并正确设置“src”?
创建新图像时,jQuery 具有以下行为:
$('img').attr('src','http://example.com/notexist.png').appendTo('body')
出现以下错误消息:
GET http://example.com/%E2%80%8Bnotexist.png 404 (Not Found)
我期待 404,但 URL 不正确 -请注意斜杠周围的额外编码- 我怎样才能阻止它并正确设置“src”?
斜杠后有一个零宽度空格E2 80 8B
字符(编码为UTF-8)。
您应该删除该字符。如果您因为看不到它而无法执行此操作,请考虑从头开始重新输入整个 URL。
正如 Frédéric 所提到的,您在文件名之前有一个编码字符,这就是您收到该错误的原因。您可能从某个地方复制了带有这些字符的 src。您应该摆脱编码的东西或自己编写 URL。
但是即使这样做,即使使用有效的 URL,您的 jquery 仍然会失败。appendTo的正确方法是先创建 jquery 元素,然后再追加它。
方法一:
$('<img src="http://example.com/notexist.png"/>').appendTo('body');
方法二:
$('<img />').attr('src','http://example.com/notexist.png').appendTo('body');
这是一个说明工作和非工作方法的 jsfiddle 链接:http: //jsfiddle.net/R7U5H/2/
'/' 和 'notexist.png' 之间实际上有一个字符,所以我相信 jQuery 做得对。请注意链接在您的帖子中没有完全突出显示。根据 Chrome 开发者工具,这个角色是​