授权头在Angular 5中不起作用。

8 浏览
0 Comments

授权头在Angular 5中不起作用。

我正在使用基于JWT的API进行消费。

我在代码中正确地传递了Authorization头信息,使用headers.set('Authorization', 'token'),并且使用了正确的GET方法。

当我使用ionic 3来提供应用程序时,出现了405错误(方法不允许),但是当我使用POSTMAN或将从POSTMAN生成的代码片段粘贴到控制台中时,相同的请求可以正常工作。

这里有两张图片,一张是工作的请求(使用从POSTMAN粘贴的代码片段),另一张是不工作的请求(来自ionic应用程序)。

顺便说一下,关于授权有一些奇怪的地方,我用红色标出来了。

Not working request

Working request

0
0 Comments

在使用Angular 5时,有用户遇到了一个问题:Authorization header不起作用。下面我们来分析一下这个问题出现的原因以及解决方法。

首先,如果不是跨域问题,可以尝试以下代码:

const httpOptions = {
    headers: new HttpHeaders()
        .set('Authorization', 'Bearer ' + this.auth_token)
}
return this.http.get('http://xxxxxx00x:8080/api/clients', httpOptions);

这段代码中,我们首先创建了一个`httpOptions`对象,它包含了一个`headers`属性,这个属性的值是一个`HttpHeaders`对象。我们通过`set`方法设置了`Authorization`头部,并将`this.auth_token`的值添加到头部中。

然后,我们使用`this.http.get`方法发送了一个GET请求到指定的URL,并传入了`httpOptions`对象作为参数。

通过以上操作,我们成功地为请求添加了Authorization头部,这样可以解决Authorization header不起作用的问题。

希望以上内容对你有帮助!

0
0 Comments

(Authorization header not working Angular 5)这个问题的出现的原因以及解决方法如下:

问题出现的原因是请求方法不正确,而不是授权问题。授权头信息无法正常工作是因为出现了CORS(跨源资源共享)问题。

解决方法:

1. 使用代理服务器进行请求。在Angular项目的根目录中创建一个名为proxy.conf.json的文件,并添加以下内容:

{

"/api/*": {

"target": "http://localhost:3000",

"secure": false,

"logLevel": "debug"

}

}

2. 在package.json文件中的scripts部分添加一个新的命令:

"start": "ng serve --proxy-config proxy.conf.json"

3. 使用新的命令启动应用程序:npm start。这将启动代理服务器,并将请求转发到指定的目标URL。

4. 进行HTTP请求时,将withCredentials设置为true,以便在请求中包含授权头信息。例如:

import { HttpClient } from '@angular/common/http';
constructor(private http: HttpClient) {}
getData() {
  const headers = { Authorization: 'Bearer ' + token };
  const options = { headers, withCredentials: true };
  return this.http.get('http://localhost:3000/api/data', options);
}

通过以上方法,可以解决Angular 5中授权头信息无法正常工作的问题,并确保请求方法正确,避免出现CORS问题。

0