gpt4 book ai didi

javascript - Angular 5 无法 PUT 出现 401 错误

转载 作者:行者123 更新时间:2023-11-29 17:43:44 25 4
gpt4 key购买 nike

我想在我的 Angular 服务和快速路线上使用 PUT 方法更新数据,但它给我 401 错误。这是我的服务:

//401
makeAdmin(_id) {
this.loadToken()
let headers = new Headers()
headers.append('Authorization', this.authToken)
console.log(_id)
headers.append('Content-Type', 'application/json')
return this.http.put(this.baseUri+'users/makeAdmin/'+_id,{headers: headers})
.map(res => res.json())
}

但是当我使用 GETDELETE 方法时,它可以将数据发送到我的快速路由。这是我的 express 路线:

router.put('/makeAdmin/:id',passport.authenticate('jwt', {session:false}),(req, res, next)=>{
console.log(req.params.id)
})

我的浏览器日志错误:

PUT http://localhost:8080/users/makeAdmin/5b57219f1e1be6279c95a5be 401 (Unauthorized) core.js:1440 ERROR Response {_body: "Unauthorized", status: 401, ok: false, statusText: "Unauthorized", headers: Headers, …}

已编辑这是来自 console.log :

Response {_body: "Unauthorized", status: 401, ok: false, statusText: "Unauthorized", headers: Headers, …} headers : Headers {_headers: Map(0), _normalizedNames: Map(0)} ok : false status : 401 statusText : "Unauthorized" type : 2 url : "http://localhost:8080/users/makeAdmin/5b57219f1e1be6279c95a5be" _body : "Unauthorized" proto : Body

最佳答案

由于您使用的是 mapHeaders 而不是 HttpHeaders,因此我假设您使用的是 angular 的旧 Http 客户端,而不是新的 HttpClient 类。

PUT 方法需要一个主体(documentation),所以试试这个

return this.http.put(this.baseUri+'users/makeAdmin/'+_id, null, {headers: headers})
.map(res => res.json())

如果您没有将 null 指定为正文,则 header 将作为正文参数发送,并且带有实际 header 的选项参数留空。

关于javascript - Angular 5 无法 PUT 出现 401 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51500014/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com