在get request angular 2上设置标题

时间:2016-07-04 13:25:44

标签: angular get header xmlhttprequest cors

我尝试将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");

我的控制台:

  

OPTIONS api / userProfile /

     

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

My request headers

有什么想法吗?

2 个答案:

答案 0 :(得分: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标题是指定您在请求中发送的内容的类型。在你的情况下,没有内容...

答案 1 :(得分:2)

autorization =  { Authorization: 'Token adfasdfadf651f65asd1f65asdf' }

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