axios typeerror:无法读取express中未定义的属性“protocol”

ddrv8njm  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(277)

首先,我现在使用html中的cdn脚本标记来使用axios。
在里面 api.js ,我创建axios示例如下:

const api = axios.create({
  baseURL: "/api",
});

export default {
  test: () => api.get("/test/results"),
};

我在另一个js文件中使用它( test.js )像这样:

import API from "/api.js";

const getSearchData = async () => {
  try {
    const res = await axios(API.test());
    console.log(res);
  } catch (error) {
    console.error(error);
  }
};

然后我得到了以下错误,并且 console.log(res); 没用。

TypeError: Cannot read property 'protocol' of undefined
    at isAxiosError.js:10
    at isAxiosError.js:10
    at new Promise (<anonymous>)
    at e.exports (isAxiosError.js:10)
    at e.exports (isAxiosError.js:10)
    at async getSearchData (test.js:17)

但在网络面板(chrome浏览器)中,它工作得非常好。它的状态代码是200。

Request URL: http://localhost:3000/api/test/results
Request Method: GET
Status Code: 200 OK
Remote Address: [::1]:3000
Referrer Policy: strict-origin-when-cross-origin

我不明白。我怎样才能修好它?我不知道怎么了。。。

6ie5vjzr

6ie5vjzr1#

你不需要打电话 axios 第二次来这里 await axios(API.test()); . 你的 api 已经是一个 axios 你用它做的例子 axios.create 早点打电话。
因此,只需将代码更改为:

import API from "/api.js";

const getSearchData = async () => {
  try {
    const res = await API.test();
    console.log(res);
  } catch (error) {
    console.error(error);
  }
};

相关问题