2017-05-03 22 views
0

我试图找回这是另一个port.I运行如下访问控制允许来源的错误和angular2

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. 

我的服务我得到一个错误服务.ts文件如下提前

+3

这些标题应该在服务器端没有客户端应用程序设置.. https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS –

+0

有任何替代将它们设置在客户端? – sravanthi

+0

nope ..你应该设置你的服务器端CORS –

回答

1

根据浏览器政策CORS是不允许的。 Howerver如果您使用的是Chrome扩展POSTMAN或应用程序如INSOMINAcors错误不会发生。

如何通过cors错误?

CORS错误应该只能通过服务器端。

请考虑您是否使用作为您的服务器端。然后在您的应用程序路线中添加以下中间件。

app.use(function(req,res){ 
res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Header' , 'authorization'); 
    }); 
0

你根本无法

getDeviceInfo(){ 
    let headers = new Headers(); 
    headers.append('Access-Control-Allow-Origin', 'http://localhost:3000',); 
    headers.append('Access-Control-Allow-Headers','Authorization') 
    let options = new RequestOptions({ 
     method: RequestMethod.Get, 
     url: DEVICE_URL, 
     headers: headers 
    }); 
    return this.http.request(new Request(options)) 
     .map((res: Response) => res.json()); 
    } 

感谢。尝试Oauth从其他网站获取信息/数据。

+0

你是什么意思_你简直不能和这与OAuth有什么关系?这只是CORS问题,可以通过在响应头文件中设置必需的头文件来解决 – Developer

相关问题