打字稿/ Angular2 http.post不设置头

打字稿/ Angular2 http.post不设置头

问题描述:

我试图从Angular2公测后第8 JSON,但头部没有被传输:打字稿/ Angular2 http.post不设置头

import { RequestOptions, RequestMethod, RequestHeaders, RequestOptionsArgs, Http } from 'angular2/http'; 

// ... 
let headers = new Headers(), 
    body = JSON.stringify({ identifier, password }); 

headers.append('Content-Type', 'application/json'); 
headers.append('Accept', 'application/json'); 
let opts:RequestOptionsArgs = { headers: headers }; 

this.http.post(this.baseUrl + 'auth/login', body, opts) 
    .subscribe(
     data => console.log(data), 
     err => console.log(err.json().message), 
     () => console.log('Authentication Complete') 
    ); 

但在Chrome浏览器中调用XHR不有这些标题中的任何一个。 Chrome调试显示Content-Type标头标记为Provisional Headers are Shown并显示Content-Type:text/plain;charset=UTF-8。头值似乎是正确的,但:

console.log(headers.get('Content-Type')) // => 'application/json' 
console.log(headers.get('Accept'))  // => 'application/json' 

的问题是,我在拉RequestHeaders,但它应该只是Headers。为什么它没有给我一个错误,我不知道。

+0

你能检查这个帖子吗?可能它可以解决你的问题。 [Angular2如何通过发送凭据来获取令牌](http://*.com/questions/35442569/angular2-how-to-get-token-by-sending-credentials) – utnas

+0

阅读这个asnwer使用'Header' http ://*.com/a/34758630/5043867 –

您需要导入Headers类这样的(你忘了你的进口来自angular2/http):

import { 
    RequestOptions, 
    RequestMethod, 
    RequestHeaders, 
    RequestOptionsArgs, 
    Http, 
    Headers // <------ 
} from 'angular2/http'; 

// ... 
let headers = new Headers(), 
body = JSON.stringify({ identifier, password }); 

详情请参见这个问题: