axios 为什么回复的格式这么奇怪?

qnyhuwrf  于 2022-12-18  发布在  iOS
关注(0)|答案(3)|浏览(155)

我正在学习节点中的后端。我正在尝试执行以下代码片段'

const axios= require('axios')
async function getData(){
    const resp = await axios.get('https://jsonplaceholder.typicode.com/todos/1')
    console.log('hello',resp.data)
}

getData()

我得到的输出如下所示:My output
预期输出为:expected output
我试着用node index.js和扩展名code runner运行代码。输出是一样的,即使在replit上我也得到了同样的结果。有人能解释一下,我做错了什么吗?

eeq64g8w

eeq64g8w1#

您正在接收Brotlibr)编码。只需将Accept-Encoding头传递给deflate,服务器就会返回一个json输出。

await axios.get('https://jsonplaceholder.typicode.com/todos/1', {
    headers: {
        'Accept-Encoding': 'deflate'
    }
})
iugsix8n

iugsix8n2#

你没有做错任何事情,只是axios currently doesn't decompress Brotli-encoded resposes,仍然把Brotli作为一个可接受的编码,这就是为什么它看起来像垃圾。不要完全禁用压缩,只要发送axios支持的编码,解压缩应该是不可见的

const resp = await axios.get('https://jsonplaceholder.typicode.com/todos/1', {
    'accept-encoding': 'gzip, deflate'
});
ki0zmccv

ki0zmccv3#

有没有任何问题,你的代码,也给了我你所需的输出与你张贴在问题中的代码,所以它必须要么其他日志或其他一些问题,但你张贴在问题中的代码与下面的输出工作正常。

相关问题