Angular 2不发送CORS HTTP AJAX请求

时间:2016-09-06 01:48:19

标签: angular angular2-http

Angular 2.0.0-rc6

我正在尝试通过CORS AJAX调用访问CouchDB服务器,如下所示。

let headers = new Headers();
headers.append('Authorization', 'Basic YWRtaW46TjI4Q29uMy4xYjItNDE=');
let options = new RequestOptions({ headers : headers, withCredentials: true });

this.http.get(this.couchDbUrl, options)
.map(this.extractData)
.catch(this.handleError);
console.log(this.couchDbUrl);

Web浏览器没有发出OPTIONSGET请求。 catch&不会触发map回调。也没有任何错误!

enter image description here

如果我用jQuery替换代码,它可以很好地工作。

jQuery.ajax({
  method  : 'GET',
  url : this.couchDbUrl,
  cache : false,
  crossDomain : true,
  xhrFields: {
    withCredentials: true
  },
  headers : { 'Authorization' : 'Basic YWRtaW46TjI4Q29uMy4xYjItNDE=' }
});

enter image description here

我不想涉及jQuery,Angular 2 HTTP客户端有什么问题?

1 个答案:

答案 0 :(得分:1)

您需要subscribe

this.http.get(this.couchDbUrl, options)
.map(this.extractData)
.subscribe( data => ...) // Subscribe
.catch(this.handleError);

更多信息:https://angular.io/docs/ts/latest/guide/server-communication.html