axios 调接口报错问题 Error: Parse Error

2019-02-27 16:23:11 +08:00
 fazero

node 10.14.2axios调这个接口https://stock.xueqiu.com/v5/stock/realtime/quotec.json?symbol=SH600926报错,报错信息是

{ Error: Parse Error
    at Socket.socketOnData (_http_client.js:442:20)
    at Socket.emit (events.js:182:13)
    at addChunk (_stream_readable.js:283:12)
    at readableAddChunk (_stream_readable.js:264:11)
    at Socket.Readable.push (_stream_readable.js:219:10)
    at TCP.onStreamRead (internal/stream_base_commons.js:94:17)

但是这个接口直接在浏览器访问是可以返回数据的,在 postman 也是可以调用的,这个报错信息看起来是代码的错误,但是代码好像没问题吧,下面是代码,还是说这个接口限制导致报错的,但是限制的话返回的报错信息也应该不是这样的?

望路过的可以解答下。

const axios = require('axios')

const url = 'http://stock.xueqiu.com/v5/stock/realtime/quotec.json?symbol=SH600926'
const monit = () => {
    axios.get(url).then((res) => {
        console.log(res)
    })
    .catch((err) => {
        console.log(typeof err);
        console.log(err.code);
        console.log(Object.keys(err)) 
    })
}
monit()
4027 次点击
所在节点    Node.js
3 条回复
wxsm
2019-02-27 16:50:29 +08:00
headers: {
'Accept': 'application/json',
'Accept-Encoding': 'gzip'
}


加上两个 header 就好了。
fazero
2019-02-27 17:06:37 +08:00
@wxsm 可以了,为什么呢,我调其他接口也不用啊 所以现在是用 axios 默认发的请求的 headers 不符合这个接口的后端的请求设置,所以后端返回报错吗
wxsm
2019-02-28 14:24:59 +08:00
有可能。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/539306

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX