axios中的“内容类型”和“内容编码”标头

a14dhokn  于 2023-02-12  发布在  iOS
关注(0)|答案(2)|浏览(198)

我正在使用axios@0.21.1,我想验证响应头。我无法验证GET响应中的头“Content-Type”和“Content-Encoding”。
1.“内容类型”:无论我在请求中传递什么内容类型,响应中的内容类型总是application/JSON。示例代码片段:

if (<token is present>) {
   request.headers = {
     authorization : 'Bearer ${token}'
   }
} else {
  config.auth =  {}
}
config.headers = Object.assign(config.header, {
                                'content-type': application/<custom content>,
                                'accept-encoding': 'gzip, deflate, br'
                              }
await axios.get(endPoint, config)
  .then(response => {
           return response
     }*

当我检查response.header时,我看到content-type显示为“application/json”而不是自定义类型。但是当我在POSTMAN中点击相同的URL时,我可以看到content-type是预期的。
1.内容编码:我想验证响应中的内容编码,但我了解到axios不会在响应中返回内容编码头,当我检查他们的github时,他们要求使用axios. interceptors。我尝试使用interceptors,但是仍然没有看到响应中的头。但是当我尝试使用Postman时,这个头出现在响应中。有一些解决方案说,CORS需要在服务器端启用。我严格要求从QA的Angular 来看,因为我们不能在服务器端启用CORS。
任何帮助都是非常值得赞赏的。

5vf7fwbs

5vf7fwbs1#

试试看:

axios.post(your-url, {
    headers: {
       'Content-Encoding': 'gzip'
    }
})

axios.post(your-url, {
    headers: {
        'Accept-Encoding': 'gzip',
    }
})
fcy6dtqo

fcy6dtqo2#

这是设计:https://axios-http.com/docs/req_config
我也遇到了这个问题,但找不到解决方案,最后只好用节点获取来代替。

相关问题