我尝试发送http GET请求并接收包含用户列表的JSON响应。我开发了一个简单的身份验证过程,每次用户登录时,授权令牌都存储在本地存储中。我需要在请求的标头中发送带有令牌的GET请求。
结果是401 - 未经授权。我的猜测是令牌没有被发送,因为当我尝试在没有令牌的情况下发送请求时,我得到了相同的错误。
我尝试过很多不同的方式,我在互联网上找到了,但到目前为止还没有。
这是我用来获取用户列表的服务
import { RequestOptions, Headers } from '@angular/http';
import { User } from './../interfaces/user';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Injectable, Inject } from "@angular/core";
import 'rxjs/add/operator/map';
import { Observable } from 'rxjs/Rx';
@Injectable()
export class UserService{
token: string;
constructor (private http: HttpClient) { }
getUsers(): Observable<any>{
this.token = localStorage.getItem("auth-token");
const header = new HttpHeaders();
header.set('Authorization', 'Bearer '+ this.token),
header.set('Content-Type', 'application/json'),
header.set("Access-Control-Allow-Origin", "*");
header.set("Access-Control-Allow-Credentials", "true");
header.set("Access-Control-Allow-Methods", "GET,POST,OPTIONS,PUT,DELETE");
header.set("Access-Control-Allow-Headers", "Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Authorization, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers");
return this.http
.get("http://localhost:50681/api/User", { headers: header })
.map(res => console.log(res));
}
}
我已经允许CORS以及后端所需的一切。
我错过了什么吗? 任何帮助都是apreciated