为什么CORS默认禁用?

时间:2016-03-06 01:03:50

标签: angularjs cors asp.net-web-api2

好吧,首先,我完全知道我们在这方面有很多答案,关于这个主题有很多文章。我只是在输入之前读了这些答案:

Why is CORS without credentials forbidden?
Is CORS considered bad practice?

等。我的具体情况是这样 - 我只是为我的练习项目设置了WebAPI2,其前端是通过gulp browser-sync运行的。我不知道如何挑选这些端口,但是假设Web API在端口http://localhost:1234/上运行,而浏览器同步在http://localhost:4321/上生成网站。所以我通过angular' $ http来点击API并得到着名的CORS错误(API控制器方法确实受到了攻击),所以我猜测它不允许返回API。编辑:我通过NuGet (Article Here)安装了一个CORS for Web API包来解决这个问题,然后再询问这个Q,只是引用了以后可能需要它的人。

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

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

1 个答案:

答案 0 :(得分:3)

CORS基于API返回的响应头。拒绝响应请求的不是API, Web浏览器明确禁止处理响应。 API将正常处理请求。

在处理除GET以外的任何事情时,CORS还需要预检"首先请求API,以确保允许后续请求。发送回头的过程就是Web API nuget包提供的内容。

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

相关问题