0

创建新图像时,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”?

4

3 回答 3

3

斜杠后有一个零宽度空格E2 80 8B字符(编码为UTF-8)。

您应该删除该字符。如果您因为看不到它而无法执行此操作,请考虑从头开始重新输入整个 URL。

于 2013-07-31T09:19:08.337 回答
1

正如 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/

于 2013-07-31T09:47:57.250 回答
1

'/' 和 'notexist.png' 之间实际上有一个字符,所以我相信 jQuery 做得对。请注意链接在您的帖子中没有完全突出显示。根据 Chrome 开发者工具,这个角色是&#8203;

于 2013-07-31T09:19:30.977 回答