为什么 CORS 默认禁用?

2024-01-29

好吧,首先,我绝对知道我们对此有很多答案,并且有大量关于该主题的文章。在输入以下内容之前,我刚刚阅读了这些答案:

为什么没有凭据的 CORS 被禁止? https://stackoverflow.com/questions/26306080/why-is-cors-without-credentials-forbidden.
CORS 被认为是不好的做法吗? https://stackoverflow.com/questions/20164173/is-cors-considered-bad-practice

等等。我的具体情况是这样的 - 我刚刚为我的实践项目设置了 WebAPI2,其前端通过 gulp browser-sync 运行。我不知道如何选择这些端口,但假设 Web API 正在端口上运行http://本地主机:1234/ http://localhost:1234/浏览器同步生成网站http://本地主机:4321/ http://localhost:4321/。所以我通过 Angular 的 $http 访问 API 并得到著名的 CORS 错误(API 控制器方法确实被命中),所以我猜测这是 API 返回不允许的。编辑:我通过 NuGet 安装 Web API 包的 CORS 解决了这个问题(文章在这里) http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api在问这个问题之前,仅供以后可能需要它的人参考。

所以,我在想,如果我部署了这个,任何请求都会被拒绝,除非我错过了一些东西。或者不会因为我不明白的事情而被拒绝?禁止 CORS 是否只是 MVC 时代的倒退?或者 API 有什么目的吗?

也许我只是在咆哮,但这让我很困惑。


CORS 基于从 API 返回的响应标头。拒绝响应请求的不是 API,而是网页浏览器明确禁止处理响应。 API 将照常处理请求。

在处理 GET 以外的任何内容时,CORS 还需要首先向 API 发出“预检”请求,以确保允许后续请求。 Web API nuget 包提供了发送回标头的功能。

出于安全目的,CORS 默认处于关闭状态。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 CORS 默认禁用? 的相关文章

随机推荐