角度 - > Web Api 2:" No' Access-Control-Allow-Origin'报头"

时间:2014-10-20 20:07:15

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

基本上我正在尝试访问上传到Azure上的web api。

我已将我的CORS属性添加到我的WebApiConfig类:

public static void Register(HttpConfiguration config)
{
    var cors = new EnableCorsAttribute("http://localhost:51407", "*", "*");
    config.EnableCors(cors);

但是每当我发送一个Ajax请求(使用angularJS)时,它都包含

Origin: http://localhost:51407

我收到错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:51407' is therefore not allowed access.

可能是什么问题?

3 个答案:

答案 0 :(得分:1)

对于.NET服务器,可以在web.config中进行配置,如下所示

 <system.webServer>
   <httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Origin" value="your_clientWebUrl" />
     </customHeaders>
   </httpProtocol>
 </system.webServer>

答案 1 :(得分:1)

要解决此问题,您需要配置CORS-es。 首先转到“Web.config”,找到“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>

就是这样。

答案 2 :(得分:0)

我还使用Azure网站中的webapi2和AngluarJS客户端(不同的服务器)。

请检查我的回答:https://stackoverflow.com/a/25758949/361100

如果您无法解决问题,请查看以上链接的其他答案。