我正在尝试访问需要基本授权的 API。
使用 Postman 或 Advanced Rest API Tool,我能够得到响应。但是,当我尝试通过 Angular 4 HttpClient 访问时,我得到了这个异常:
login:1 XMLHttpRequest 无法加载https://someUrl.com:4400/api/v1/login。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问源“ http://localhost:4200 ”。响应具有 HTTP 状态代码 405。
这是角度代码
@Injectable()
export class LoginService {
constructor(private http: HttpClient, @Inject('api') private api) {
}
login(post) {
let auth="Basic "+ btoa(post.username + ":" + post.password);
console.log(auth);
let headers = new HttpHeaders({'Content-Type': 'application/json'})
.set("authorization", auth);
console.log(headers);
return this.http.post(this.api + 'login',null,{
headers:headers
});
}
}