Typescript/Angular2 http.post不设置标题

mik*_*dge 5 typescript angular

我试图从Angular2 beta 8发布json但是标题没有被传输:

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')
    );
Run Code Online (Sandbox Code Playgroud)

但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'
Run Code Online (Sandbox Code Playgroud)

问题是我要进去RequestHeaders,但它应该是Headers.为什么它没有给我一个错误,我不知道.

Thi*_*ier 14

您需要Headers像这样导入类(您在导入时忘记了它angular2/http):

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

// ...
let headers = new Headers(),
body = JSON.stringify({ identifier, password });
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅此问题: