Axios在asyncData(nuxt)中抛出自签名证书错误

vptzau2j  于 2023-04-30  发布在  iOS
关注(0)|答案(1)|浏览(254)

我正在做一个项目,我正在使用nuxt。通过httpsnode.js服务器进行API调用,由于所有内容都在本地开发中,因此我使用self signed certificates
当我尝试从asyncData拨打axios时,我收到

ERROR  self signed certificate                                                                                                                                                                        15:08:11

  at TLSSocket.onConnectSecure (_tls_wrap.js:1049:34)
  at TLSSocket.emit (events.js:182:13)
  at TLSSocket.EventEmitter.emit (domain.js:442:20)
  at TLSSocket._finishInit (_tls_wrap.js:631:8)

当我尝试从nuxtServerInit调用axios时,显示同样的错误。从methods发出的相同调用和用@click调用的相同调用获取数据并工作。此外,store actions中的其他调用也可以正常工作。
这个调用不起作用的原因是什么?还有,有没有一种方法可以像上面描述的那样调用axios?
这不起作用:

async asyncData(context) {
    let result = await context.app.$axios.$get("/item", {
      headers: {
        "x-auth": context.store.getters["login/getToken"]
      }
    });       
    console.log("item: ", result.item);
  }

这确实可以毫无问题地工作:

methods: {
  async getItem() {
    try {
      let result = await this.$axios.$get("/item", {
        headers: {
          "x-auth": this.$store.getters["login/getToken"]
        }
      });      
      console.log("item : ", result.item);
    } catch (e) {
      console.log(e);
    }
  }
}

谢谢你的帮助

ie3xauqp

ie3xauqp1#

在设置Axios时,我使用了以下配置,使其正常工作:

$axios.defaults.httpsAgent = new HttpsAgent({
    rejectUnauthorized: false
});

注意:这可能是非常安全的关键,因此此配置应仅在必要时触发(本地开发)。

相关问题