服务器端渲染(SSR)中带有@ nuxt / axios的“套接字挂断”错误请求

时间:2020-04-04 15:48:57

标签: axios nuxt.js

问题

  • 在asyncData()中获取API时遇到“套接字挂断”错误

条件

  • 使用Nuxt Axios模块
  • 不使用代理
  • 没有CORS错误
  • 在客户端渲染中运行asyncData()时成功获取API(例如,从<nuxt-link>的访问有效,但是在新标签页中打开或键入浏览器的URL无效)

节点v10.16.3,nuxt 2.12.2,@ nuxtjs / axios 5.9.7

/pages/user.vue

<template>
  <div>
    {{user}}
  </div>
</template>

<script>
export default {
  async asyncData({ $axios, route, error }) {
    try {
      const res = await $axios.$get(`/api/user/${route.query.id}`);
      return {user: res};
    } catch (error) {
      console.error(error);
    }
  },
  data(){
    return {
        user: null
    }
  }
}
</script>

结果

此错误仅发生在服务器端呈现中(直接通过URL访问,而不是从<nuxt-link>访问)

 Error: socket hang up
>      at createHangUpError (_http_client.js:323:15)
>      at Socket.socketOnEnd (_http_client.js:426:23)
>      at Socket.emit (events.js:203:15)
>      at Socket.EventEmitter.emit (domain.js:448:20)
>      at endReadableNT (_stream_readable.js:1145:12)
>      at process._tickCallback (internal/process/next_tick.js:63:19)

0 个答案:

没有答案