【问题标题】:IE9 CORS and restangularIE9 CORS 和restangular
【发布时间】:2014-07-16 09:26:15
【问题描述】:

我正在使用 restangularangularjs 应用程序并调用 RESTful API 服务器。但是,这是对 IE9 和 IE10 的轰炸。有什么解决办法吗?

我在这里尝试了 IE10 的步骤:http://blogs.msdn.com/b/ie/archive/2012/02/09/cors-for-xhr-in-ie10.aspx 无济于事。

我的angularjs 有一个这样的网址:http://portal.mydomain.com,我的 api 服务器有一个这样的网址:http://api.mydomain.com

我已确认我在响应中得到了适当的标头:

access-control-allow-origin: http://portal.mydomain.com access-control-allow-credentials: true

但是,我不断收到以下信息: SEC7118: XMLHttpRequest for http://api.mydomain.com/ required Cross Origin Resource Sharing (CORS).

任何帮助将不胜感激!

【问题讨论】:

    标签: internet-explorer-9 cors internet-explorer-10 restangular


    【解决方案1】:

    您需要为 IE 9 使用 polyfill(google ie cors polyfill)。 IE 8 和 IE 9 不支持“正常”CORS。 (Google XdomainRequest 获取更多信息。)

    对于 IE 10:

    您是否在服务器端正确设置了 Access-Control-Allow-Methods 和 Access-Control-Allow-Headers(您只提到了 allow-origin 和 allow-credentials)?如果您使用凭据,您是否启用了该客户端? (RestangularProvider.setDefaultHttpFields({withCredentials: true}))

    请求是否需要预先发送?如果是这样,如果您事先使用 curl 或类似的方式手动执行 OPTIONS 请求,您是否看到服务器返回的正确 Access 标头?即使从技术上讲,请求在技术上不需要进行预检,也值得检查一下 IE 是否真的是,并验证您的后端是否正确支持 OPTIONS 请求。

    听起来您是在说请求在非 IE 浏览器中正常工作。对吗?

    【讨论】:

    • 我们实际上最终使用了这里列出的答案:stackoverflow.com/questions/18706208/…
    • @devlife 我最终也使用了 xdomain :-)。 (在搜索 IE 8 和 9 CORS polyfill 选项时发现了您的问题。)
    猜你喜欢
    • 2015-05-01
    • 2014-10-23
    • 2013-08-04
    • 2016-08-13
    • 1970-01-01
    • 2013-10-19
    • 2017-04-16
    • 2013-09-28
    • 1970-01-01
    相关资源
    最近更新 更多