【问题标题】:net::ERR_FAILED zone-evergreen.js:2952net::ERR_FAILED zone-evergreen.js:2952
【发布时间】:2020-06-23 07:14:01
【问题描述】:

使用 Angular 7 作为前端,使用 Nodejs 作为后端。

我使用 IIS 在 Amazon-web-service 上部署了一个网站,当我向服务器发出 API 请求时,一切正常。

但是当来自中国的客户尝试使用同一个网站并发送同一个 API 时,他会得到一个No 'Access-Control-Allow-Origin' header is presented on the requested resource

除了那个错误,他收到另一个错误:POST http:... net::ERR_FAILED zone-evergreen.js:2952

zone-evergreen.js 是什么?它如何影响 cors 政策?

附言

当客户端浏览他的移动智能手机时,API 被成功发送。问题出在他的计算机设备上。

这里是服务器代码(node.js):

const express = require('express');
const cors = require('cors');


app.use(cors());
app.use((req, res, next) => {
  res.header('Access-Control-Allow-Origin', '*');
  res.append('Access-Control-Allow-Headers', 'Content-Type');
  next();
})

这是发送 API 请求的客户端(Angular 7):

public saveData(data: any): Observable<any> {
    const httpOptions = {
        headers: new HttpHeaders({
            'Content-Type': 'application/json',
        }),
    };

    return this.http.post(this.baseUrl + this.apiName, JSON.stringify(data), httpOptions);
}

错误:

【问题讨论】:

    标签: node.js angular cors


    【解决方案1】:

    这是因为您的浏览器不信任服务器。所以请检查控制台中的错误,并且会有一个指向它的链接。您可以单击它,它将重定向到提示。在那里点击advanced然后点击proceed to site.

    如果您遇到 CORS 错误,那是因为您的服务器是从非白名单位置访问的。您可以简单地使用 chrome 商店中提供的 CORS unblock 扩展名来解除阻止

    【讨论】:

      【解决方案2】:

      您似乎遇到了 CORS 策略错误。 为了完成这项工作,您应该通过您的 API 启用 CORS 并重新部署它。

      我不确定如何在您的案例中修复它,我只是提到您可以研究的内容,以便您自己修复它。

      注意!

      【讨论】:

        猜你喜欢
        • 2021-03-28
        • 1970-01-01
        • 2021-01-08
        • 2020-05-26
        • 2020-07-25
        • 2020-10-21
        • 1970-01-01
        • 1970-01-01
        • 2016-09-27
        相关资源
        最近更新 更多