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浏览器没有发出OPTIONS
或GET
请求。 catch
&不会触发map
回调。也没有任何错误!
如果我用jQuery替换代码,它可以很好地工作。
jQuery.ajax({
method : 'GET',
url : this.couchDbUrl,
cache : false,
crossDomain : true,
xhrFields: {
withCredentials: true
},
headers : { 'Authorization' : 'Basic YWRtaW46TjI4Q29uMy4xYjItNDE=' }
});
我不想涉及jQuery,Angular 2 HTTP客户端有什么问题?
答案 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