Angular 5-GET方法在添加标头后作为OPTIONS发送

0 get http http-headers angular

?你好,

我的HTTP请求有问题。是否可以帮助我了解发生了什么?

当我发送GET请求时,它作为OPTIONS发送:

let headers = new HttpHeaders();

headers = headers.set('Content-Type', 'application/json; charset=utf-8')
?.set('Authorization','bearer ' + this.auth.getUserToken());

 this.http.get(SERVER.URL_PROD + API.VERSION + API.GET_USERS, {headers: headers}).subscribe((res: any) => {
  console.log(res);
});
Run Code Online (Sandbox Code Playgroud)

在我的chrome开发工具调试中,我看到以下内容:

Request Method: OPTIONS

Status Code: 405 Method Not Allowed
Run Code Online (Sandbox Code Playgroud)

Mik*_*ung 5

就像David所说的那样,您遇到了CORS问题。具体来说,当您使用浏览器时,浏览器会向OPTIONSapi /后端发送请求,说我可以在触发a之前得到此请求GET。如果对您的答复OPTIONS无法回答,例如您的回答,405那么您将被禁止执行GET

为了解决此问题,您要访问的后端需要实现CORS并允许HTTP METHODS其支持的各种版本。