Как исправить случайный http-запрос (404 ответа) от Axios - PullRequest
0 голосов
/ 09 мая 2019

HTTP-запрос работает, как и ожидалось, но я вижу дополнительный запрос к /%3Canonymous%3E, который возвращает 404. Это вызывает следующую ошибку в Redux:

Необработанный отказ (TypeError): невозможно прочитать свойство 'data' из не определено

Я не вижу 404 в запросах к другим маршрутам в других компонентах, например, / api / users из пользовательского компонента. Я изменил запросы на получение и маршруты, чтобы соответствовать тому из пользователя, но проблема все еще сохраняется. Я попробовал запрос в почтальоне, и он отвечает ожидаемым результатом. Дополнительный запрос к /% 3Canonymous% 3E происходит только при получении запросов на ресурс заказа в браузере (из приложения).

GET запрос:

export const getOrders = () => dispatch => {
  axios
    .get("api/orders/")
    .then(res =>
      dispatch({
        type: GET_ORDERS,
        payload: res.data
      })
    )
    .catch(err =>
      dispatch({
        type: GET_ERRORS,
        payload: err.response.data
      })
    );
};

Заказ маршрута:

router.get(
  "/",
(req, res) => {
    Order.find()
      .then(orders => res.json(orders))
      .catch(err => {
        res.json(err);
      });
  }
);

getOrder Reducer:

case GET_ORDERS:
      return {
        ...state,
        allOrders:
          action.payload
      };

Редуктор всего заказа:

import {
  GET_ORDERS,
  ADD_ORDER,
  EDIT_ORDER,
  SET_EDITING_ORDER
} from "../actions/types";

const initialState = {
  editingOrder: {},
  allOrders: [],
  editedOrder: {}
};

export default function(state = initialState, action) {
  switch (action.type) {
    case SET_EDITING_ORDER:
      return {
        ...state,
        editingOrder: action.payload
      };

    case EDIT_ORDER:
      return {
        ...state,
        editedOrder: action.payload
      };

    case GET_ORDERS:
      return {
        ...state,
        allOrders: action.payload
      };

    case ADD_ORDER:
      //   state.allOrders.push(action.payload);
      return {
        ...state,
        allOrders: [...state.allOrders, action.payload]
        // newOrder: action.payload [don't need this
      };

    default:
      return state;
  }
}

Данные возвращаются и заполняются в состоянии избыточности, но этот дополнительный случайный запрос вызывает проблему. Заранее благодарим.

...