Как исправить ошибку «Ошибка: запрос не выполнен с кодом состояния 404» в axios Next js - PullRequest
0 голосов
/ 23 июня 2019

Я использую следующие js, когда пытаюсь вызвать конечную точку API (отправка действия с избыточностью) в getInitialProps.Я получаю сообщение об ошибке 404, мой / api / проксируется на сервере nginx, все другие маршруты работают очень хорошо, только этот маршрут вызывает проблему.

Я попытался изменить вызов функции api fetch на async, новсе та же ошибка.

static async getInitialProps({ store, query: { id } }) {
    await store.dispatch(fetchP(id));
    console.log('GetIntial');
    return { id };
 }

Мой создатель действий

export const fetchp = id => async dispatch => {
  dispatch({ type: FETCH_P_DETAILS_STARTED });
  await API.get(`ps/${id}`)
    .then(res => {
      console.log(res);
      dispatch({
        type: FETCH_P_DETAILS_SUCCESS,
        payload: res.data.data,
      });
    })
    .catch(err => {
      console.log(err);
      if (!err.response) {
        // network error
        err.message = 'Error: Network Error';
        console.log(err.message);
      } else if (err.code === 'ECONNABORTED') {
        console.log('Timeout');
      } else {
        err.message = err.message;
      }
      dispatch({
        type: FETCH_P_DETAILS_FAILURE,
        payload: err.message,
      });
    });
};

Моя конфигурация nginx

  location /api/ {
    proxy_pass http://127.0.0.1:5000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }

Ошибка Ответ Ошибка: запрос не выполнен с кодом состояния 404 при createError (/home/ubuntu/mainWebApp/node_modules/axios/lib/core/createError.js:16:15) при настройке (/ home / ubuntu /mainWebApp / node_modules / axios / lib / core / урегулирования.js: 18: 12) в IncomingMessage.handleStreamEnd (/home/ubuntu/mainWebApp/node_modules/axios/lib/adapters/http.js:202:11) в IncomingMessage.emit(events.js: 198: 15) в endReadableNT (_stream_readable.js: 1139: 12) в processTicksAndRejected (внутренний / process / task_queues.js: 81: 17)

1 Ответ

0 голосов
/ 23 июня 2019

Таким образом, проблема в том, что getInitialProps выполняется на сервере, и axios не может запустить сервер, используя вместо него https://www.npmjs.com/package/isomorphic-fetch.

...