关于同源策略或者是跨域请求的概念,可以先读我的前一篇文章:同源策略——浏览器的安全卫士 不同源的资源读取带来了方便,也带来了弊端。作为开发者也不得不做出一些妥协的事情。 实际上 IE 7、8、9、10 对于跨域ajax 是默认不支持的。 浏览器的支持程度
IE 10 以下的支持都是很糟糕的,如果你一定要开启,那就按照很多网友说的方法试一下,
但是作为一个普通用户,谁知道这么设置呢?所以,必须从代码层面上解决这个问题。 在 stackoverflow 中有一个问题, IE9 jQuery AJAX with CORS returns “Access is denied”
解决办法——XDomainRequest通过使用 Internet Explorer 8 中的跨域请求(缩写为“XDR”),开发人员可以创建跨网站数据聚合方案。 这个名为XDomainRequest 的请求与 XMLHttpRequest 对象类似,但编程模型更加简单,它可以提供一种最简单的方式来向支持 XDR 的第三方站点发出匿名请求,并选择使这些站点的数据可跨域使用。 只需三行代码即可生成基本的跨站点请求。 这将确保针对公共站点(例如,博客或其他社交网络应用程序)的数据聚合简单、安全和快速。 跨域请求需要经过网页和服务器的相互同意。 通过利用 window 对象创建 XDomainRequest 对象,并打开到特定域的连接,可以在网页中启动一个跨域请求。 浏览器将通过发送带有源值的 Origin 标头,从特定域的服务器中请求数据。 如果服务器响应的 Access-Control-Allow-Origin 标头为 * 或请求页面的确切 URL,则浏览器将仅仅完成连接。 此行为是万维网联盟 (W3C) 的 Web 应用程序工作组制定的、针对与 XDomainRequest 对象集成的客户端跨域通信的草稿框架的一部分。 更优雅的解决办法jQuery-ajaxTransport-XDomainRequest 这是一个基于 XDomainRequest 实现 jquery ajxa 的 jquery 插件,为了支持 IE8、9的cors。 demo
注意为了在IE 浏览器中使用 XDomainRequest,以下是必须的,
|
|
来自: icecity1306 > 《开发资料》