我试图使用Angular 2(版本4.0.0)从开发环境(localhost:4200)调用REST API
收到以下错误消息: “阻止跨源请求:同源策略禁止在https://localhost:8000/auth读取远程资源。(原因:缺少CORS标头'Access-Control-Allow-Origin'。”
这里我提供一个代码示例供参考:
var headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
return this.http.post(this.loginUrl, 'POST_Parameters', {
headers: headers
}).map(res => {
console.log(res);
});
有人可以帮我找到解决这个问题的方法吗?
答案 0 :(得分:1)
CORS必须由后端启用。根据后端框架,通常您必须发送后端可识别的特定标头。但是,在明确启用后端的CORS支持之前,发送标头是没用的
答案 1 :(得分:1)
在我的一个项目上,我刚刚去了我的服务器(linux 16.04上的apache2),我刚刚添加了" Header设置了Access-Control-Allow-Origin" *"&#34 ;在虚拟服务器配置文件
上答案 2 :(得分:0)
根据浏览器策略,不允许使用CORS。如果您使用 POSTMAN ,则不会发生此错误。
CORS错误只应由服务器端删除。因此,您应该在后端代码中设置标头。
如果您使用快递作为后端......
app.use(function(req,res){
res.header('Access-Control-Allow-Origin', '*');});
答案 3 :(得分:0)
您在本地服务器中。您需要在同一台服务器上运行api和angular app。 当您在同一个生产服务器上上传项目时,我希望不会显示此错误。