【问题标题】:getting image with $.ajax() - Access Control Request Headers使用 $.ajax() 获取图像 - 访问控制请求标头
【发布时间】:2012-05-06 16:25:20
【问题描述】:

我正在使用类似的东西通过 jquery ajax 获取图像。

$.ajax({
   url: imageurl,
   type:'GET',
   contentType: 'image/png',
   success: success,
   error: error,
   timeout: 5000
});

我可以看到我的请求标头包括

Access-Control-Request-Headers:来源、内容类型、接受

另一方面,如果我设置一个像

这样的 img 元素
<img src="imageurl" ...

并观察请求标头,我没有看到任何“访问控制请求标头”。

只是想知道 $.ajax() 添加此标头的原因是什么。为什么要为应该是有效的跨站点 HTTP 请求的图像添加这个。删除此标头是否是一种好习惯或什至可能?

【问题讨论】:

标签: jquery


【解决方案1】:

使用 XMLHttpRequest 访问的任何内容都将具有这些标头,无论它是否是图像。关键部分是请求的来源(脚本而不是“img”标签)。

这个标题实际上是由浏览器创建的,所以,不,不可能通过 jquery 删除它。

过去不允许脚本执行跨站点 HTTP 请求,这些标头是新的“跨域共享”功能的一部分。见:https://developer.mozilla.org/en/http_access_control

请注意,可能可以通过使用 jquery 生成“img”标签来规避,这可能会以您想要的方式进行操作。我没试过,但值得一试..

【讨论】:

  • 我只是想支持这样一个事实,即通过创建图像标签,我能够让 Chrome 和 Firefox 正确发送 Origin 头部。很好地调用您的想法来生成图像标签。
猜你喜欢
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 2014-02-15
  • 2016-05-11
  • 2015-05-24
  • 2012-09-02
  • 1970-01-01
相关资源
最近更新 更多