我正在使用这样的东西通过jquery ajax获取图像。
$.ajax({
url: imageurl,
type:'GET',
contentType: 'image/png',
success: success,
error: error,
timeout: 5000
});
我可以看到我的请求标题包含
Access-Control-Request-Headers:origin,content-type,accept
另一方面,如果我设置了像
这样的img元素<img src="imageurl" ...
并观察请求标头我没有看到任何“访问控制请求标头”。
只是想知道$ .ajax()添加此标头的原因是什么。为什么要为应该是有效的跨站点HTTP请求的图像添加此项。这是一个好的做法,甚至可能删除这个标题?
答案 0 :(得分:1)
使用XMLHttpRequest访问的任何内容都将包含这些标头,无论它是否为图像。关键部分是请求的来源(脚本而不是'img'标签)。
这个标题实际上是由浏览器创建的,所以不,不可能通过jquery删除它。
历史上,不允许脚本执行跨站点HTTP请求,这些标头是新的“跨源共享”功能的一部分。请参阅:https://developer.mozilla.org/en/http_access_control
请注意,可能可以通过使用jquery来生成'img'标记,这可能会以您想要的方式进行操作。我没试过,但值得一试......