根据这个MSDN博客,Internet 8和9不支持在跨站点请求上设置标头参数的能力,这意味着CORS支持是非常有限的。
简单地说(如果我正确理解的话),在IE8或IE9中,不可能将AJAX请求上的授权头(OAuth令牌)设置为从用户代理当前位置在另一个源上运行的REST服务。
这是对的,还是我遗漏了一些明显的东西?这不是有效地扼杀了交付需要通过身份验证访问REST资源的单个页面应用程序(即AngularJS)的能力吗?有什么我现在看不到的退路模式吗?
发布于 2014-05-17 05:07:43
事实上,IE 8和9是有限的,如所提供的链接所示。
回答我自己的问题。我们选择通过在负载均衡器中添加一个路由规则来避免这种情况,以接受期望的源域上的请求,再加上一个特殊的infix路径,并将请求URL重写到我们预先设置的URL。
换句话说,单页应用程序(SPA)在IE < 10中运行时,将向https://theApplication.com/IEsux/foo/v1/发出ajax请求。负载均衡器会在我们的网络中重写这个到https://api.ourDomain.com/foo/v1/..。
这将适用于我们主持SPA的情况,因此对/IEsux的调用将遍历我们的负载均衡器。不幸的是,一旦我们有一个外部供应商创建自己的SPA并希望使用我们的REST,这将失败。
欢迎替代方案!
发布于 2013-12-18 23:17:29
你可以用角来做jsonp请求:
但它非常有限
https://stackoverflow.com/questions/20647688
复制相似问题