打字稿/ 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
。为什么它没有给我一个错误,我不知道。
答
您需要导入Headers
类这样的(你忘了你的进口来自angular2/http
):
import {
RequestOptions,
RequestMethod,
RequestHeaders,
RequestOptionsArgs,
Http,
Headers // <------
} from 'angular2/http';
// ...
let headers = new Headers(),
body = JSON.stringify({ identifier, password });
详情请参见这个问题:
你能检查这个帖子吗?可能它可以解决你的问题。 [Angular2如何通过发送凭据来获取令牌](http://stackoverflow.com/questions/35442569/angular2-how-to-get-token-by-sending-credentials) – utnas
阅读这个asnwer使用'Header' http ://stackoverflow.com/a/34758630/5043867 –