现在的位置: 首页 > 综合 > 正文

跨来源资源共享CORS

2014年01月15日 ⁄ 综合 ⁄ 共 1323字 ⁄ 字号 评论关闭

跨来源资源共享

跨来源资源共享(CORS)是一份浏览器技术的规范,提供了 Web 服务从不同网域传来沙盒脚本的方法,以避开浏览器的同源策略[1],是 JSONP 模式的现代版。与
JSONP 不同,CORS 除了 GET 要求方法以外也支援其他的 HTTP 要求。用 CORS 可以让网页设计师用一般的 XMLHttpRequest,这种方式的错误处理比
JSONP 要来的好。另一方面,JSONP 可以在不支援 CORS 的老旧浏览器上运作。现代的浏览器都支援 CORS[2]

浏览器支援

拥有以下宣染引擎的浏览器都支援 CORS:

  • Gecko 1.9.1(Firefox 3.5[1]、SeaMonkey
    2.0[3])以上
  • WebKit(未确认最早版本,Safari 4 以上、Chrome 3 以上,可能早些)
  • MSHTML/Trident 4.0(Internet Explorer 8)由 XDomainRequest 物件提供部份支援[1]

已知以下浏览器不支援 CORS:

  • 至 Opera 10.61 为止 Opera 未实作 CORS[4]
  • Carmino 2.0.x 系列未实作 CORS,因为这些版本建构在
    Gecko 1.9.0 之上[5]
  • Arora 0.10.2 有 WebKit 的 CORS 相关 API,但是若使用跨来源要求会失败[6]

[编辑]历史

Tellme
Networks
 的马特·奥什里(Matt Oshry)、布拉德·波特(Brad Porter)与麦克·波德尔(Michael Bodell)于 2004 年 3 月提案将跨来源支援加入 VoiceXML 2.1[7] 以支援
VoiceXML 浏览器的跨来源资料请求。W3C 认为这不应该限制在 VoiceXML 而是一般的机制,因此将提案移到另一份实作备忘录[8]。几个主要的浏览器厂商透过
W3C 的 Web 应用程式工作小组正式的将该备忘录改写为 W3C 工作草案并以推动成为 W3C
推荐标准
为目标。

[编辑]参见

[编辑]参考资料

  1. 1.0 1.1 1.2 https://developer.mozilla.org/En/HTTP_access_control
  2. ^ http://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/
  3. ^ https://developer.mozilla.org/en/Gecko
  4. ^ http://dev.opera.com/forums/topic/693452
  5. ^ http://forums-test.mozillazine.org/viewtopic.php?f=12&t=1579855
  6. ^ http://code.google.com/p/arora/issues/detail?id=904
  7. ^ http://www.w3.org/TR/2004/WD-voicexml21-20040323/
  8. ^ http://www.w3.org/TR/2005/NOTE-access-control-20050613/

[编辑]外部链接

抱歉!评论已关闭.