Как решить проблему с ошибкой 405, метод не разрешен, для сервера django graphql и реагировать на команды в front end - PullRequest
0 голосов
/ 06 июля 2018

Привет У меня проблемы с решением этой проблемы. У меня есть сервер django graphql, который работает для порта локальной машины 8000, когда я запрашиваю его в бессоннице, все работает хорошо, но я интегрируюсь с внешним интерфейсом reactjs и axios я получаю ошибку:

xhr.js:178 OPTIONS http://127.0.0.1:8000/graphql/ 405 (Method Not Allowed)[enter image description here][1]

Мой settings.py с Django graphql Сервер

Мой внешний запрос от ReactJs с использованием Axios:

export function getProducts(args = {}) {
  return (dispatch) => { // optionally you can have getState as the second argument

    dispatch({type: HOME_GET_PRODUCTS_BEGIN});

    const promise = new Promise((resolve, reject) => {
      const query = {
        url: 'http://127.0.0.1:8000/graphql/',
        method: 'POST',
        headers: {
          "Accept": "application/json",
          'Content-Type': 'application/json'
        },
        data: {
          query: `products{
                  userKey{
                  id
                  username
                  email
                  password
                }
                id
                title
                price
                image
              }
          `,
      },
    };
    axios(query).then(
      (res) => {
        dispatch({
          type: HOME_GET_PRODUCTS_SUCCESS,
          data: res.data,
        });
        resolve(res);
      },
      // Use rejectHandler as the second argument so that render errors won't be caught.
      (err) => {
        dispatch({
          type: HOME_GET_PRODUCTS_FAILURE,
          data: { error: err },
        });
        reject(err);
      },
    );
  });

return promise;
  };
}

пожалуйста, мне нужна помощь

1 Ответ

0 голосов
/ 08 июля 2019

Это похоже на проблему в вашем CORS. Как видите, клиент отправляет OPTIONS instread из POST. Это так называемая проверка перед полетом , выполняемая браузером для любого запроса метода небезопасный , если домен, хост или порт страницы отличаются от конечной точки.

Если это так, используйте django-cors-headers и добавьте 127.0.0.1 в список разрешенных хостов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...