JQuery错误地编码了img src上设置的URL。我怎么能让它不编码?

时间:2013-07-31 09:14:03

标签: jquery

创建新图像时,jQuery具有以下行为:

$('img').attr('src','http://example.com/​notexist.png').appendTo('body')

出现以下错误消息:

GET http://example.com/%E2%80%8Bnotexist.png 404 (Not Found) 

我期待404,但网址不正确 - 请注意斜杠附近的额外编码 - 如何停止此操作并正确设置'src'?

3 个答案:

答案 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/