如何启用CORS,因为我没有WebApiConfig.cs

时间:2016-12-29 01:10:06

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

我想在ASP网站上的控制器上启用CORS。教程显示我必须更改WebApiConfig.cs并添加一行config.EnableCors();

问题是我没有这个文件。我的关闭是RouteConfig.cs,那么在我的项目中启用CORS呢?

我在web.config文件

中添加了以下部分
<httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Origin" value="*" />
     </customHeaders>
</httpProtocol>

但是Ajax调用API仍然会返回

  

服务器响应状态为405(方法不允许)

当我使用浏览器调用API时,它可以正常工作。

1 个答案:

答案 0 :(得分:0)

CORS或跨源资源共享用于从浏览器进行跨域通信。您从浏览器调用的端点是告诉浏览器是否允许浏览器完成和处理请求的端点,或者通过在响应中发送Access-Control- *标头来告诉浏览器。

当浏览器收到响应时,它首先检查是否存在Access-Control- *标头,以及它们中的信息是否与您的请求匹配,如果它们存在且其中的信息与请求匹配,则浏览器将允许您的自定义客户端代码处理响应,如果标题不存在或标题中的信息与您的请求不匹配,则浏览器将阻止响应以进行任何进一步处理。

您需要做的是在回复中设置这些标题。

有关CORS标题的进一步阅读:W3C CORS