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

Cha*_*hon 25 javascript ajax rest jsonp

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

T.J*_*der 40

这里有一个参考文献表明现代浏览器中的支持是合理的(但请参见本答案末尾的注释),假设客户端代码故意处理IE问题.(IE8和IE9支持CORS,但不是通过XMLHttpRequest - 你必须使用XDomainRequest,而且值得注意的是jQueryPrototype都没有为你在他们的ajax包装器中做到这一点 - 我不知道其他库 .IE10 终于搞定了. )该页面实质上表示在以下桌面版本中支持CORS:

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

...以及

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

你要问自己你的目标市场是什么,是否他们很可能仍然在使用旧版本的IE,因为它的问题相当多你的目标是谁.但总的来说,你仍然(目前)可能想要看一下JSONP接口 - 即使在美国大多数家庭市场,IE6 + IE7 =大约20%的用户.我不知道很多网站可以忽略五分之一的市场.:-)如果你看一下企业用户,或亚洲,非洲或中美洲的用户,这个数字会明显上升.上述情况在2010年都是如此.在2013年,中国实际上是唯一使用IE6的人(其中> 24%).在全球范围内,IE6和IE7用户已经转向IE8和IE9,甚至大公司和政府用户也最终"了解"了安全风险.IE8将与我们在一段时间(因为IE在Windows XP上有很高的优势),但你可以打赌使用IE9的近20%将很快在IE10上.

  • 好消息是,与最后一段有关的数字现在正在迅速下降.IE6在美国市场现在低于1%; 我没有IE7的数字,因为NetApplications现在为他们的地理过滤器收费(可以理解!).但IE7在全球的市场份额仅占IE6市场份额的三分之二左右,因此对于美国本土市场,我们可能就在那里.奇怪的是,Opera 11**仍然不支持CORS,但据称将支持12. (3认同)