哪些浏览器允许使用Access-Control-Allow-Origin进行跨域ajax调用:*?

时间:2010-12-09 22:41:29

标签: javascript ajax rest jsonp

哪些浏览器允许使用Access-Control-Allow-Origin: *进行跨域ajax调用?我正在设置REST服务并尝试确定是否需要支持JSONP以允许跨域javascript访问,或者是否足以设置Access-Control-Allow-Origin标头。

2 个答案:

答案 0 :(得分:40)

Here's one reference建议现代浏览器中的支持是合理的(但请参阅本答案末尾的注释),假设客户端代码故意处理IE问题。 (IE8和IE9支持CORS,但不能通过XMLHttpRequest - 您必须使用XDomainRequest,而且值得注意的是,jQueryPrototype都没有为您做到这一点ajax包装器 - 我不知道other libraries。IE10 最终使它正确。)该页面实质上说,桌面版本支持CORS

  • IE8 +(通过XDomainRequest),IE10 +(正确)
  • Firefox 3.6 +
  • Safari 4.0 +
  • Chrome 6 +
  • Opera 12.1 +

......以及

  • iOS Safari 3.2 +
  • Android浏览器2.1 +

您必须问问自己目标市场是什么以及他们是否仍可能使用旧版本的IE,因为it matters quite a lot是您的目标市场。 但总的来说,你(目前)仍然可能想看一下JSONP界面 - 即使在美国大部分家庭市场,IE6 + IE7 =大约20%的用户。我不知道很多网站可以忽略五分之一的市场。 :-)如果你看一下企业用户,或亚洲,非洲或中美洲的用户,这个数字会明显上升。 2010年的情况就是如此。在2013年,中国真的是唯一坚持使用IE6的人(那里有> 24%)。在全球范围内,IE6和IE7用户已经转向IE8和IE9,甚至大公司和政府用户也最终“了解”了安全风险。 IE8将与我们在一起一段时间(因为IE在Windows XP上有很高的优势),但你可以打赌使用IE9的近20%很快将在IE10上。

答案 1 :(得分:0)

使用Access-Control-Allow-Origin:*时遇到了一些问题。我认为它与cookie和预检请求(POST)有关。因此,最好指定您将从哪个域进行这些调用。