我正在尝试从角度应用程序和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>
答案 0 :(得分:1)
您请求的网站似乎不允许从任何其他域访问任何资源。表示您请求的网站尚未实施CORS(跨源请求共享)。
临时解决方案:
您可以使用代理(https://crossorigin.me/https://google.com),只需做一下->只需在url
之前附加https://crossorigin.me/即可获得更多信息
检查HERE。
第二种和永久的解决方案: 您必须为从中请求资源的站点实现跨源资源共享。
第三名: 第三,您可以从浏览器(https://alfilatov.com/posts/run-chrome-without-cors/)禁用CORS。