如何在Angular 2中创build启用CORS的HTTP请求?

错误如下:

XMLHttpRequest无法加载http://some_url.herokuapp.com/api/some_api/ 。 请求的资源上没有“Access-Control-Allow-Origin”标题。 原因' http:// localhost:3000 '因此不被允许访问。 该响应具有HTTP状态码503。

打电话时

返回this._http.post(requestUrl,JSON.stringify(requestBody),requestOptions)

在过去,我曾经遇到过使用CORS(在使用Angular 1时 )的麻烦,我记得一旦CORS被激活了服务器端,我不得不转换http请求来parsing某些HTTP头

我很困惑它应该如何工作,所以任何解释都是非常受欢迎的。

事实上,这不是Angular2的问题,而是服务器端的一个问题。 预冲的OPTIONS请求需要在其响应中返回一个Access-Control-Allow-Origin标头。

在原始请求中发送Origin头将启用服务器端的CORS支持。 当浏览器检测到请求的域名与呼叫者的域名不一致时,会自动添加此头域。

在服务器端实现预检选项请求时要小心,因为凭证不在此级别发送 。 他们只在目标请求内发送。 这似乎是因为你有503错误的问题。 你正在试图检查OPTIONS请求是否被authentication,但事实并非如此…

看到这篇文章的更多细节:

在Angular2中,处理CORS问题的最好方法是创build一个代理服务器。 现在如何创build代理服务器? 看看这里