请求中缺少授权标头(Angular4和Django)

2024-04-25 21:03:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我将Django用于restfulapi,Angular4用于客户端。 我在Django有CORS设置。邮递员说一切都很顺利。 同样的请求在角度上不起作用。身份验证正在工作。我得到401未经授权的回应后,每一个请求得到令牌。 请求中缺少授权头,即使我是显式设置的。在

你能帮我找出我的方法有什么问题吗?在

这里我把授权头设置成角度

角度代码:

public setUserData(){
      var search = new URLSearchParams();
      let headersObj = this.getAuthHeaders() as any;
      let requestOptions = new RequestOptions({ headers: headersObj });
      let responseData = this.http.get(apiConfig.tokenValidateUrl 
                       ,requestOptions)
                        .map(this.handleData)
                        .catch(this.handleError);
      responseData.subscribe(
                       response => {
                        localStorage.setItem('user', response);
                       },
                       error => {
                         console.log(error)
                       }
                      );
  }


public getAuthHeaders():Headers{
      let headers = new Headers();
      headers.append('Content-Type', 'application/json');
      headers.append('Accept', 'application/json');
      headers.append('Authorization', 'Bearer '+localStorage.getItem('token'));
      return headers;
 }

这是Django的CORS设置

设置.py

^{pr2}$

Tags: djangonewresponsepublicthisheaders角度let
1条回答
网友
1楼 · 发布于 2024-04-25 21:03:33

标头不接受“Authorization”属性。在

已创建具有“Authorization”字段的CustomHeaders类,并在RequestOptionArgs中将此自定义头设置为{headers:CustomHeaders}。在

解决了这个问题。请在这里找到更新的代码。在

CustomHeaders类

export class CustomHeaders{
   Authorization: string;
   Content-Type: string;
}


public getAuthHeaders():Headers{
      let headers = new CustomHeaders();
      headers.Authorization = 'Bearer '+localStorage.getItem('token');
      headers.Content-Type = 'application/json';
      return headers;
 }

相关问题 更多 >