【问题标题】:web api Cross-origin resource sharingweb api 跨域资源共享
【发布时间】:2016-06-30 11:56:00
【问题描述】:

我在使用 web api 时遇到问题。当我使用 web api 服务时出现跨域资源共享问题。

Actullay 我开发了 web api 应用程序并托管在 iis 中,然后我需要使用 angularjs 在 mvc 应用程序中使用该服务。

这里是Actulla问题开始,httppost,httpget正常工作。 但是 [httpput,httpdelete] 不起作用。

【问题讨论】:

标签: asp.net angularjs asp.net-web-api


【解决方案1】:

看看这篇文章 - Enabling Cross-Origin Requests in ASP.NET Web API 2

  1. 在 Visual Studio 包管理器控制台中运行:

    安装包 Microsoft.AspNet.WebApi.Cors

  2. 然后在WebApiConfig.Register方法中调用config.EnableCors();

这将在全球范围内启用 CORS。您也可以按控制器执行此操作,只需阅读本文,您将了解实现此目的的不同方法

【讨论】:

    【解决方案2】:

    请在 API 项目的 web 配置中的 <system.webServer> 部分添加此内容..

    <httpProtocol>
      <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
      </customHeaders>
    </httpProtocol>
    

    【讨论】:

    • 我已经尝试过了,但这不起作用。 httpdelete 和 httpput 不起作用