Azure 请求的资源上不存在 'Access-Control-Allow-Origin' header

标签 azure asp.net-web-api azure-web-app-service

我正在尝试将我的 api 服务(用 web api 编写)移至 azure。 我打开了一个网站并将其移至那里。 在 Web api 中,我有以下属性:

[EnableCors(origins: "*", headers: "*", methods: "*")]

在旧网站(不是 azure )上,所有请求都会返回数据,无论我尝试从哪个域获取数据。

将 Web api 移至 Azure 中的新网站后,我开始收到下一个错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource

当 Web API 位于旧网站上时,它可以工作(来自本地主机和其他类型的源)。

Azure 门户中需要进行任何配置吗?或者也许更改 web.config?

谢谢

最佳答案

我和我的团队创建了一个演示,演示如何使用需要启用 CORS 的 AngularJS 前端构建 Web API。这是source code

此示例中需要注意的一些事项:

  • 使用 Microsoft.AspNet.WebApi.Cors NuGet 包
  • 在 App_Start 文件夹中的 WebApiConfig.cs 中启用 CORS
  • Web.config:删除处理程序:OPTIONSVerbHandlerTRACEVerbHandlerWebDAV
  • Web.config:删除模块:WebDAVModule

关于Azure 请求的资源上不存在 'Access-Control-Allow-Origin' header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30604363/

相关文章:

asp.net - 缓解 Web 服务器上的 RsaCryptoServiceProvider 线程安全问题

azure - 在已安装文件存储的 Azure 应用程序服务中,Firefox 中的文件下载失败

node.js - 如何在Azure应用程序服务上运行使用ts-node开发的 Node 应用程序

java - 插入新文档时,Cosmos Db 触发器未运行

php - 适用于 PHP 的 Microsoft Azure 和 SAS

azure - 我们是否需要为 Azure Functions 上使用的 .csx 文件的编译时间付费?

c# - Web API、IQueryable、OData 和 HttpResponseMessage 作为返回类型?

c# - 通过处理程序下载 WebApi 文件

c# - 向 Bearer 授权添加额外的逻辑

angularjs - 如何将纯 Angular 应用程序从 Visual Studio Team System 部署到 Azure 网站