首页 > 解决方案 > 我的 axios 实例不起作用,我不知道为什么

问题描述

我为 axios 实例创建了一个单独的 axios.js 文件,以向我正在实时运行的 API 发出请求。当我在我的登录路由中使用 axios 实例时,我得到一个 POST http://127.0.0.1:3000/login 404 (Not Found) 错误,即使在我的 axios 实例中定义的 url 不是我的本地主机它是 url API。现在,当我在登录路由中使用 axios 并输入整个 API url 而不是使用实例时,POST 请求会转到正确的 url,并且我得到了正确的响应。我不明白这个。API 上的一切都很好,并且已经过多次测试,并且我之前使用过这样的 axios 实例。

这是我设置的实例(baseUrl 在我的代码中是正确的):

import axios from 'axios';

const axiosInstance = axios.create({
  baseUrl: REMOVED,
  headers: {
    Authorization: localStorage.getItem('accessToken')
      ? 'Bearer ' + localStorage.getItem('accessToken')
      : null,
    'Content-Type': 'application/json',
  },
});

export default axiosInstance;

这是使用我的 axios 实例并且不起作用的登录功能:

export const login = (email, password) => (dispatch) => {
  axiosInstance
    .post('/login', { email: email, password: password })
    .then((res) => {
      dispatch({
        type: LOGIN_SUCCESS,
        payload: res.data,
      });
    })
    .catch((err) => {
      console.log(err);
      dispatch({
        type: LOGIN_FAIL,
      });
    });
};

这是完美运行的登录功能:

export const login = (email, password) => (dispatch) => {
  axios
    .post('fullurlnotshown/login', { email: email, password: password })
    .then((res) => {
      dispatch({
        type: LOGIN_SUCCESS,
        payload: res.data,
      });
    })
    .catch((err) => {
      console.log(err);
      dispatch({
        type: LOGIN_FAIL,
      });
    });
};

编辑:解决了问题...实例中的“baseUrl:”应该是“baseURL:”

标签: reactjsaxios

解决方案


您可能引用了错误的属性baseUrl。axios文档的属性为baseURL(URL 而不是 Url)。

Axios 可能会默默地忽略您不正确的属性键并回退到 localhost。


推荐阅读