【问题标题】:Nginx Web browser CORS IssuesNginx Web 浏览器 CORS 问题
【发布时间】:2016-12-08 04:16:08
【问题描述】:

我正在开发一个使用外部 API 的 AngularJS 应用程序,但遇到了一个奇怪的问题 (CORS)。我做了很多研究都没有解决这个问题。

当我点击我的 API 时,预检请求很好(状态 204 无内容), 但是当服务器响应的状态码不是 2xx(200、204 等)时,我遇到了 CORS 问题。

如果我的服务器发回 2xx 作为状态码是正常的,我们没有 CORS 问题,但如果在此处发送另一个状态码就是问题。

API: Sylex(PHP 框架)在 Nginx

下运行

前端应用AngularJS - 使用 webpack

XHR 视图:

控制台 CORS 错误:

【问题讨论】:

    标签: angularjs ajax nginx cors system-administration


    【解决方案1】:

    经过一天的搜索,我弄清楚了 CORS 的来源。 Nginx 配置没问题。 是 API。

    在预检请求(OPTIONS)期间,服务器允许通过请求,因为 NGINX 允许源和标头 (access-control-allow-origin, access-control-allow-headers), p>

    但当 API 发回响应时,标头未设置。

    我通过在响应中添加 access-control-allow-originaccess-control-allow-headers 来修复它。

    重要提示:我发现在网络浏览器上的 200 状态代码的响应中数据不可恢复。 要修复它,请删除在其他响应(5xx、4xx 等)中添加的标题 (不知道是不是我的情况)

    我还没有开发 API,这就是为什么我需要一天时间才能弄清楚的原因。希望我能帮助这个用例的人:)

    【讨论】:

      猜你喜欢
      • 2021-03-27
      • 2018-09-05
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 2017-04-27
      • 2020-07-07
      相关资源
      最近更新 更多