授权头在Angular 5中不起作用。
授权头在Angular 5中不起作用。
我正在使用基于JWT的API进行消费。
我在代码中正确地传递了Authorization头信息,使用headers.set('Authorization', 'token')
,并且使用了正确的GET方法。
当我使用ionic 3来提供应用程序时,出现了405错误(方法不允许),但是当我使用POSTMAN或将从POSTMAN生成的代码片段粘贴到控制台中时,相同的请求可以正常工作。
这里有两张图片,一张是工作的请求(使用从POSTMAN粘贴的代码片段),另一张是不工作的请求(来自ionic应用程序)。
顺便说一下,关于授权有一些奇怪的地方,我用红色标出来了。
在使用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不起作用的问题。
希望以上内容对你有帮助!
(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问题。