Cors 试图理解为什么simple angular 2 http.get()不能在本地主机上工作

Cors 试图理解为什么simple angular 2 http.get()不能在本地主机上工作,cors,angular2-services,Cors,Angular2 Services,试图理解为什么这样一个简单的rest调用api不能在本地主机上工作(使用angular cli) 这是服务代码: commandsUrl ='http://www.mocky.io/v2/...'; headers = new Headers({ 'Access-Control-Allow-Origin': '*' }); options = new RequestOptions({ headers: this.headers, withCredentials: true });

试图理解为什么这样一个简单的rest调用api不能在本地主机上工作(使用angular cli)

这是服务代码

commandsUrl ='http://www.mocky.io/v2/...';
  headers = new Headers({ 'Access-Control-Allow-Origin': '*' });
  options = new RequestOptions({ headers: this.headers, withCredentials: true });

  getMyList (): Observable<any> {
    return this.http.get(this.commandsUrl, this.options)
      .map(this.extractData)
      .catch(this.handleError);

  }
  private extractData(res: Response) {
    let body = res.json();
    return body.data || { };
  }
  private handleError (error: Response | any) {
    let errMsg: string;
    if (error instanceof Response) {
      const body = error.json() || '';
      const err = body.error || JSON.stringify(body);
      errMsg = `${error.status} - ${error.statusText || ''} ${err}`;
    } else {
      errMsg = error.message ? error.message : error.toString();
    }
    console.error(errMsg);
    return Observable.throw(errMsg);
  }
commandsUrl='1〕http://www.mocky.io/v2/...';
headers=新的头({'Access Control Allow Origin':'*');
options=newrequestoptions({headers:this.headers,withCredentials:true});
getMyList():可观察的。。。回应
飞行前请求未通过访问控制检查:否
“Access Control Allow Origin”标头出现在请求的服务器上
资源。因此,不允许使用源“”
进入

你必须仔细阅读。在发送真正的AJAX请求之前,会发送GET和OPTIONS请求,服务器必须使用“Access Control Allow Origin”头进行响应,该头授予您访问它的权限

也就是说,“…”处的服务器必须配置为接受来自服务器的CORS请求(或使用通配符)


我已在响应中添加了标题访问控制允许来源,但似乎没有任何更改。您已将标题添加到的响应中?你有一个我可以调用的URL或者一个证明服务器正在返回它的屏幕截图吗?您的代码是根据客户机的请求添加头,这没有任何作用,头必须作为响应头发送。奇怪的是,它似乎在这里工作。但我没有看到有人提出选项请求,这是一个可能没有实现的请求。我想问题可能出在angular cli中,需要配置一些东西。可能我运行了一个angular2应用程序,该应用程序执行CORS,我从来没有配置过任何东西。这很奇怪。作为一个调试选项,我将尝试直接运行XHR(不使用我链接到的jsbin中的angular)