angular - Angular 6 中没有“Access-Control-Allow-Origin”标头
问题描述
我收到 Access-Control-Allow-Origin 错误。
从源“ https://localhost:44322 ”访问“ https://localhost:44301/api/XXXX/GetAllXXXX ”处的 XMLHttpRequest已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:否请求的资源上存在“Access-Control-Allow-Origin”标头。
下面是我传递给 api 调用的标题。
getAllItems<T>(): Observable<T> {
const options = { headers: this.getRequestHeaders() };
return this.http.get<T>(this.getAllItemUrl, options);
}
protected getRequestHeaders(): HttpHeaders {
let headers = new HttpHeaders({
'Content-Type': 'application/json',
'Accept': `application/json, text/plain, */*`,
'App-Version': '1',
});
return headers;
}
我是否缺少任何可以在这里连接我的 API 的东西?
解决方案
您需要将 CORS 添加到后端服务。如果它是一个基于快递的服务,你可以有这样的东西
const express = require('express');
const app = express();
var allowCrossDomain = function(req, res, next) {
res.header('Access-Control-Allow-Origin', "*");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE');
res.header('Access-Control-Allow-Headers', 'Content-Type');
next();
}
app.use(allowCrossDomain);
推荐阅读
- reactjs - react-hook-form 控制器与 react-draft-wysiwyg
- python - 在 tensorflow 2.0 中保存和加载模型
- wordpress - 如何在 EC2 内托管多个具有不同端口的 wordpress 网站作为容器
- asp.net - 使用 nginx 从另一台机器访问 Web 应用程序 (ASP.NET)
- kubernetes - 如何在 Kubernetes 集群内的内部服务之间设置会话亲和性
- java - 尝试根据消耗大量时间的标准从 Mongodb 获取记录
- angular - 使用 Angular 9 时 Fork Join 不起作用
- java - 如何在应用程序后台运行 RecognitionListener?
- javascript - 使用 Pixjs 修改多边形的顶点位置
- javascript - 如何根据对象中的值限制对象类型?