根据获取请求设置 headers angular 2

Set headers on get request angular 2

我尝试将授权 header 设置为 GET 请求以验证用户身份 API。我正在使用 Angular 2 RC1。 (我完全是初学者)。

getTest(){
    let authToken = localStorage.getItem('auth_token');
    let headers = new Headers({ 'Content-Type': 'application/json' });
    headers.append('Authorization', `Bearer ${authToken}`);

    let options = new RequestOptions({ headers: headers });
    return this._http
      .get(this._url,options)
      .map(res => console.log(res));
  }

我在后端允许 CORS。

header("Access-Control-Allow-Origin: *");
header("Access-Control-Request-Headers: Content-Type, Authorization");

我的主机:

OPTIONS api/userProfile/

XMLHttpRequest cannot load /userProfile/. Response for preflight has invalid HTTP status code 406

My request headers

有什么想法吗?

我认为您需要 Accept header 而不是因为 406 状态代码...

let authToken = localStorage.getItem('auth_token');
let headers = new Headers({ 'Accept': 'application/json' });
headers.append('Authorization', `Bearer ${authToken}`);

let options = new RequestOptions({ headers: headers });
return this._http
  .get(this._url,options)
  .map(res => console.log(res));

这允许您告诉服务器您期望响应中的内容类型...

Content-Type header 更确切地说是指定您在请求中发送的内容的类型。你的情况是没有内容...

autorization =  { Authorization: 'Token adfasdfadf651f65asd1f65asdf' }

this.http.get(url, { headers: autorization})