16

我尝试将 Authorization 标头设置为 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");

我的控制台:

选项 api/userProfile/

XMLHttpRequest 无法加载 /userProfile/。预检响应具有无效的 HTTP 状态代码 406

我的请求标头

任何想法 ?

4

2 回答 2

26

我认为你需要Accept标题而不是因为 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头是指定您在请求中发送的内容的类型。在你的情况下,没有内容......

于 2016-07-04T13:30:35.993 回答
1
autorization =  { Authorization: 'Token adfasdfadf651f65asd1f65asdf' }

this.http.get(url, { headers: autorization})
于 2017-04-12T15:20:42.300 回答