跨来源资源共享CORS

跨来源资源共享


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

浏览器支援

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

  • Gecko1.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:

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

[编辑]历史

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

[编辑]参见

[编辑]参考资料

  1. ^1.01.11.2https://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/

[编辑]外部链接

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...