向ASP.NET Web API发送请求时出现CORS错误

时间:2019-04-19 09:59:19

标签: c# asp.net-mvc angular

我正在尝试从角度应用程序和ASP.NET Web API发送请求,它们都在两个不同端口上的localhost中运行。当从有角度的应用程序(前端)向Web API发送请求时,出现CORS错误,即“所请求的资源上没有'Access-Control-Allow-Origin'标头”。

我尝试了多种方法来解决此问题,例如在WebApiConfig类中启用cors,在web.config中启用自定义标头并拦截飞行前检查,但问题仍然存在。

WebApiConfig.cs

var corsAttr = new EnableCorsAttribute("*", "*", "*");
config.EnableCors(corsAttr);

Web.config

<system.webServer>
    <httpProtocol>
    <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
        <add name="Access-Control-Allow-Headers" value="Content-Type, 
            Access-Control-Allow-Headers, Authorization, X-Requested- 
            With, X- AuthToken" />
        <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, 
                 DELETE, OPTIONS" />
   </customHeaders>
   </httpProtocol>
   <modules runAllManagedModulesForAllRequests="true">
     <add name="HandleOptions" type="OptionsModule" />
   </modules>
 </system.webServer>

1 个答案:

答案 0 :(得分:1)

您请求的网站似乎不允许从任何其他域访问任何资源。表示您请求的网站尚未实施CORS(跨源请求共享)。

临时解决方案: 您可以使用代理(https://crossorigin.me/https://google.com),只需做一下->只需在url之前附加https://crossorigin.me/即可获得更多信息

检查HERE

第二种和永久的解决方案: 您必须为从中请求资源的站点实现跨源资源共享。

第三名: 第三,您可以从浏览器(https://alfilatov.com/posts/run-chrome-without-cors/)禁用CORS。

查看这些网站以了解更多详细信息12