【发布时间】: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);
}
【问题讨论】: