我尝试将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
有什么想法吗?
答案 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})