今天,我尝试浏览最近部署到我们的测试环境中的一项新功能(非本地)。导航到新功能后,出现空白页。感到困惑,我检查了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 /隐身模式
-适用于FireFox
-在我所居住的同一域中的至少4个其他开发人员的所有浏览器上均可使用。 (向我表明这是环境问题)
可能的原因:
-几周前我正在做一些CORS研究,也许我配置了一些Windows 7设置来导致这种情况发生?
Google已对标准CORS问题感到满足,所以我在这里问,希望有人可以提供帮助。
最佳答案
当前的问题是由于环境之间的不一致。
在我们的生产环境中,SSL
是通过IIS
中的重定向强制执行的,而在我们的测试环境中则不是。我使用http
通过书签导航到该站点。按照@epascarello的建议更新书签可以解决此问题。