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