Angular2,REST服务POST调用错误:“跨源请求被阻止”

时间:2017-05-03 14:53:14

标签: rest angular

我试图使用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);
});

有人可以帮我找到解决这个问题的方法吗?

4 个答案:

答案 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。 当您在同一个生产服务器上上传项目时,我希望不会显示此错误。