【问题标题】:Why is CORS Disabled by Default?为什么默认禁用 CORS?
【发布时间】:2016-06-19 17:04:28
【问题描述】:

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

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。编辑:在问这个 Q 之前,我通过 NuGet (Article Here) 安装 CORS for Web API 包解决了这个问题,只是为以后可能需要它的任何人提供参考。

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

也许我只是在咆哮,但这把我搞糊涂了。

【问题讨论】:

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


    【解决方案1】:

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

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

    出于安全考虑,CORS 默认关闭。

    【讨论】:

      猜你喜欢
      • 2010-11-27
      • 2018-06-13
      • 1970-01-01
      • 2022-10-15
      • 1970-01-01
      • 2017-12-16
      • 1970-01-01
      • 1970-01-01
      • 2020-02-02
      相关资源
      最近更新 更多