首页 > 解决方案 > 当我使用 Axios.create 访问 api 时,Response.data 为空,但是当我使用 axios.post 时它会给出响应

问题描述

我正在尝试使用 axios 访问 API,但 response.data 变量为空。在使用 axios.create 但当我直接使用 axios.post 访问 API 时。它工作正常。我想通过 axios.create 得到响应。这是我的 axios 创建代码

const client = axios.create({
baseURL: BASE_URL,
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
},
});

我的发布请求方法是:

export const postRequest = (url, payload = {}) => client.post(url, payload);

当我请求我调用这个方法时:

  const res = await postRequest('/login', body)

标签: javascriptreact-nativeaxios

解决方案


axios.create返回client具有属性的 a .request,而不是.post

来自https://masteringjs.io/tutorials/axios/create-post的示例

const client = axios.create({
  url: '/post',
  baseURL: 'https://httpbin.org',
  method: 'POST',
  timeout: 1000
});

let res = await client .request({
  data: {
    name: 'Masteringjs.io',
    email: 'Masteringjs@io'
  }
});

res.data.json // ↓
// { email: 'Masteringjs@io', name: 'Masteringjs.io' }

所以你的代码看起来像这样:

const client = axios.create({
  baseURL: BASE_URL,
  headers: {
    "Content-Type": "application/json",
    "Accept": "application/json",
  },
  method: "POST"
});

export const postRequest = (url, payload = {}) => client.request({ url, data: payload });

const res = await postRequest('/login', body)


推荐阅读