我正在为我的应用程序使用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,这可能会导致问题。
答案 0 :(得分:1)
此问题出在服务器端。后者必须在HTTP调用的响应中返回Access-Control-Allow-Origin
标头。
大多数时候,您可以使用工具插入服务器应用程序来为您执行此操作。当客户端发送Origin
标头(由浏览器自动添加)时,服务器知道必须返回CORS标头。
有关CORS的更多详细信息,请参阅此文章: