【发布时间】:2015-03-10 18:52:12
【问题描述】:
我在 Firefox 和 IE 中遇到了与 CORS 相关的错误,但在 Chrome 中一切正常。
我的客户打来的两个电话是
- 在 Chrome 和 Firefox 中运行的对 Facebook 的一般调用,但在 IE 11 中失败。我正在调用 https://graph.facebook.com/oauth/access_token_info?client_id=myclientid&access_token=usersaccesstoken 以验证他们的令牌仍然有效。在 IE 中,我收到以下错误:XMLHttpRequest for required Cross Origin Resource Sharing (CORS)。
- 第二个调用是我的服务器,它在所有地方都启用了 CORS(代码粘贴在下面)。有趣的是这一切都在本地主机上,所以应该是同一台服务器。我收到的错误是“同源策略不允许读取位于https://localhost:44300/api/auth/login 的远程资源。这可以通过将资源移动到同一个域或启用 CORS 来解决。”
CORS 相关的 Web API 代码
var cors = new EnableCorsAttribute("*","*","*");
config.EnableCors(cors);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
更新 1
嗯,它在部署到 Azure 时可以工作,但不能在 localhost 上工作。部署后,这两个问题都得到了完全解决。很奇怪,也很糟糕,因为我需要能够在本地测试这些东西。但至少它有点工作......可能会添加一些线索来解决。
更新 2
在部署时始终如一地工作(即使是客户端和服务器位于不同域的那些)并且在本地主机上失败。我无法缩小它在本地失败的原因。清除缓存并删除本地文件,问题仍然存在。完全向 CORS 开放了我的服务器,问题仍然存在。我唯一能猜到的是 Azure 如何处理跨 Azure 请求,从而在部署时绕过 CORS 问题。我真的需要让它在本地工作才能测试。
【问题讨论】:
-
您是在本地向
http提出请求吗? -
@charlietfl https 到 localhost 上的 https,客户端和服务器在不同的端口上
标签: javascript angularjs internet-explorer firefox asp.net-web-api