向 ASP.NET Web API 发送请求时出现 CORS 错误
Posted
技术标签:
【中文标题】向 ASP.NET Web API 发送请求时出现 CORS 错误【英文标题】:CORS error when sending request to ASP.NET Web API 【发布时间】:2019-09-09 14:51:08 【问题描述】:我正在尝试从 Angular 应用程序和 ASP.NET Web API 发送请求,它们都在 localhost 的两个不同端口上运行。当从 Angular 应用程序(前端)向 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>
【问题讨论】:
看看***.com/questions/18619656/enable-cors-in-web-api-2 Mosharaf Hossain 答案对我有用 也可以看看this。 @AmitBaranes 尝试过,但错误仍然出现 @Nik 那是我阅读的第一份文件 【参考方案1】:您请求的站点似乎不允许从任何其他域访问任何资源。表示您请求的站点尚未实施 CORS(跨源请求共享)。
临时解决方案:
您可以使用代理 (https://crossorigin.me/https://google.com),所有您需要做的 --> 只需在您的 url
之前附加 https://crossorigin.me/ 并了解更多详细信息
检查HERE。
第二个永久解决方案: 您必须为您请求资源的站点实施跨源资源共享。
第三个: 第三是您可以从浏览器中禁用 CORS (https://alfilatov.com/posts/run-chrome-without-cors/)。
查看这些网站了解更多详情1,2
【讨论】:
问题是我在我的api上实现了CORS,但是还是不行。 请检查这个:***.com/questions/29024313/… 我已经尝试了所有这些,但问题仍然存在 ***.com/questions/42199757/… 最后一个网址很有帮助,因为我无法在您的代码中找到任何问题。以上是关于向 ASP.NET Web API 发送请求时出现 CORS 错误的主要内容,如果未能解决你的问题,请参考以下文章
向 web api 发送 ajax 请求时出现 401 Unauthorized
向本地服务器发送请求时出现 Flutter Web XMLHttpRequest 错误
无法使用javascript向ASP.NET web api Controller发送http POST请求
从 asp.net 核心应用程序发出 DELETE 请求时出现 405 错误