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

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

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()


4 回复

headers: {
‘Accept’: ‘application/json’,
‘Accept-Encoding’: ‘gzip’
}


加上两个 header 就好了。


可以了,为什么呢,我调其他接口也不用啊 所以现在是用 axios 默认发的请求的 headers 不符合这个接口的后端的请求设置,所以后端返回报错吗

有可能。

针对你提到的Node.js中使用axios调用接口时遇到的“Error: Parse Error”问题,这通常表明axios在尝试解析服务器响应时遇到了问题。以下是一些可能的解决步骤和示例代码,帮助你定位并解决问题:

  1. 检查响应格式: 确保服务器返回的是预期的格式(如JSON)。如果服务器返回了非JSON格式的数据,或者数据被截断、损坏,axios在解析时会报错。

  2. 设置响应类型: 你可以在axios请求中明确指定responseType,比如如果你预期返回的是数组缓冲区,可以设置responseType: 'arraybuffer'

  3. 捕获错误并打印详细信息: 使用try...catch结构捕获错误,并打印出详细的错误信息,包括响应数据(如果可用)。

const axios = require('axios');

axios.get('https://example.com/api/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    if (error.response) {
      // 服务器响应了一个状态码,范围在2xx之外
      console.error('Response error:', error.response.data);
    } else if (error.request) {
      // 请求已发出,但没有收到响应
      console.error('Request error:', error.request);
    } else {
      // 其他错误
      console.error('Error message:', error.message);
    }
  });
  1. 检查axios版本和兼容性: 确保你使用的axios版本与Node.js版本兼容。

通过以上步骤,你应该能够诊断并解决“Parse Error”的问题。如果问题依旧存在,可能需要进一步检查服务器的响应或咨询API提供者。

回到顶部