【问题标题】:No 'Access-Control-Allow-Origin' header - Same Domain?没有“Access-Control-Allow-Origin”标头 - 同一个域?
【发布时间】:2013-12-02 01:38:09
【问题描述】:

今天我尝试浏览最近部署到我们的测试环境(非本地)的新功能。导航到新功能后,我遇到了一个空白页面。一头雾水,查看了Chrome的控制台,发现报错:

XMLHttpRequest cannot load https://test.mytestsite.com/SomeApplication/api/SomeController/SomeMethod/8?Id=523283&SecondId=1612w3426653. 
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://test.mytestsite.com' is therefore not allowed access.

此代码对 WebAPI(在同一域上)进行 ajax 调用,以检索有关 document.Ready 的一些信息。我了解该错误并且我熟悉它的典型原因。但是,此调用是从在同一域中进行的,它适用于我团队中的其他开发人员

症状: - 不适用于 IE 或 Chrome/Incognito - 是否适用于 FireFox - 适用于我所在的同一域中至少 4 位其他开发人员的所有浏览器。 (向我表明这是一个环境问题)

可能的原因: - 几周前我在做一些 CORS 研究,也许我配置了一些 Windows 7 设置来导致这种情况发生?

Google 已经饱受标准 CORS 问题的困扰,所以我在这里询问,希望有人能提供帮助。

【问题讨论】:

  • http & https 这就是问题所在。
  • @epascarello 我也是这么想的,但正如我提到的,这适用于 FireFox 以及我办公室中的所有其他开发人员(使用 IE、Chrome 和 FireFox)。
  • https 在 Chrome 和 IE 中是否经过验证?又名,打开浏览器并输入您正在使用的 https url。它会提示您验证不受信任的证书吗?
  • 你是对的!我们的网站应该只强制执行 SSL,我想我们的测试环境并非如此。将 URL 更改为 https: 有效。谢谢!如果您将此作为答案发布,我很乐意将其标记为这样。

标签: javascript asp.net-web-api cross-domain cors


【解决方案1】:

手头的问题是由于环境之间的不一致造成的。

在我们的生产环境中,SSL 是通过 IIS 中的重定向强制执行的,而在我们的测试环境中则不是。我正在使用http 通过书签导航到该站点。正如@epascarello 建议的那样更新书签,解决了这个问题。

【讨论】:

    猜你喜欢
    • 2016-01-21
    • 1970-01-01
    • 2017-09-19
    • 2015-04-02
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多