【发布时间】:2019-07-18 22:10:42
【问题描述】:
我正在用 Angular 7 制作一个应用程序,该应用程序连接到我用 python 编写的 API。我想在 POST 请求中发送一个文本,API 做了一些 nlp 的事情并返回结果。 API 使用 RestPlus 并托管在 GCP App Engine 上。所以在角度我有这个代码:
posts: any;
readonly ROOT_URL = 'XXX';
const httpOptions = {
headers: new HttpHeaders({
'Access-Control-Allow-Origin': '*',
'Content-Type': 'application/json',
'X-API-KEY': 'X',
})
};
const data: any = {
"article": this.text
};
this.posts = this.http.post(this.ROOT_URL, data, httpOptions);
this.text 是我从表单获得的值,我已经检查过它是否有效。 X-API-KEY 是我在 API 中设置的令牌。
在控制台中我得到:
跨域请求被阻止:同源策略不允许读取 XXX 处的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)
跨域请求被阻止:同源策略不允许读取 XXX 处的远程资源。 (原因:CORS 请求未成功)。
我尝试向 postb.in 发送一个发布请求以对其进行测试并得到相同的错误。而 postb.in 显示它只收到了 OPTION 请求。
【问题讨论】:
-
Access-Control-Allow-Origin应设置为来自服务器(您的 Python API)的响应标头 -
现在在我的 API 函数中,我返回 {'result': result}, 201, {'Access-Control-Allow-Origin': '*'} 但我仍然收到跨域请求被阻止并且当我在邮递员 Access-Control-Allow-Origin 中测试 API 时在响应标头中。
标签: javascript angular api request cors