【发布时间】:2017-05-23 08:29:45
【问题描述】:
我在 Azure 的 AppService 上托管了一个 Owin WebAPI2 .NET 应用程序。
我想添加使用 Azure 作为 in this article 的 CORS 支持。看起来很简单,你只需像这样在列表中添加一个 Origin 站点:http://screencast.com/t/r2ATq4u5
我现在希望 Response 标头包含这个允许的 Origin。
但是,当我使用 Fiddler 检查时,响应标头中不包含 CORS 标头: http://corstestqm.azurewebsites.net/breeze/restaurantsbreeze/basictest
我尝试过的步骤:
- 从我的解决方案中删除所有 CORS Nuget 库以及我的 API 项目中的所有 CORS 代码痕迹。
- 部署到全新的 AppService
- Enabled Owin CorsAllowAll
这些都没有任何效果。 (即响应不包含 Azure 中指定的 CORS 标头)。
我在这里错过了一些非常基本的东西吗?
更新 我进一步简化了问题: 在VS2015中新建了一个API项目,推送到http://corstestbasicap2.azurewebsites.net/api/values/ 没有任何变化(即它不应该启用 CORS)。
然后我使用 Test-Cors tool 来访问该 API。它没有按预期出现 CORS 错误。然后我进入 Azure 并添加一个虚拟 URL(例如 http://www.example.com)并再次尝试 CORS 测试。它应该会失败,因为 Azure 应该只让 example.com 通过。但是,它工作正常。
然后我 edit CORS again in Azure 并在 http://www.example.com 下方添加 http://www.test-cors.org(因此它应该允许通过),现在标题按预期返回 Access-Control-Allow-Origin:http://www.test-cors.org。
但这没有意义吗?当“http://www.test-cors.org”不在允许的来源中时,之前的调用肯定会失败吗?它似乎没有做任何有用的事情?!
【问题讨论】:
标签: azure cors azure-web-app-service