Angular2

时间:2016-05-23 11:10:18

标签: javascript angular cors rxjs http-status-code-405

我正在为我的应用程序使用webpack angular2入门套件(https://github.com/AngularClass/angular2-webpack-starter),现在我遇到了问题。

我尝试拨打电话

getSomeData(): Observable<any> {
  let url =  here is my api URL;
  let headers = new Headers({ 'Content-Type': 'application/json; charset=utf-8', "Access-Control-Allow-Origin": "*", 'dataType': 'json', });
  let options = new RequestOptions({ headers: headers });

  return this._http.get(url, options).map(res => res.json());
}

我有下一个错误

  

XMLHttpRequest无法加载(我的URL)对预检请求的响应未通过访问控制检查:请求的资源上没有“Access-Control-Allow-Origin”标头。因此,不允许原点“http://localhost:3000”访问。响应的HTTP状态代码为405。

这个Api(它使用firebird)默认返回XML,这可能会导致问题。

  1. 如何让JSON始终如一?
  2. 如何使用CORS解决此问题?

1 个答案:

答案 0 :(得分:1)

此问题出在服务器端。后者必须在HTTP调用的响应中返回Access-Control-Allow-Origin标头。

大多数时候,您可以使用工具插入服务器应用程序来为您执行此操作。当客户端发送Origin标头(由浏览器自动添加)时,服务器知道必须返回CORS标头。

有关CORS的更多详细信息,请参阅此文章: