如何解决错误405 method not allowed,对于django graphql服务器和前端的react axios

Rea*_*ELD 5 python django reactjs graphql axios

您好,我很难解决这个问题,我有 djangographql服务器,当我在失眠中查询它时,它正在为我的本地计算机端口运行,8000一切正常,但我正在与前端集成reactjs,但axios出现错误:

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

我的settings.pyDjangographql服务器

我的前端请求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;
  };
}
Run Code Online (Sandbox Code Playgroud)

请我需要帮助

uhb*_*f19 0

这看起来像是您的 CORS 中的问题。如您所见,客户端发送OPTIONS而不是POST. 如果页面的域、主机或端口与端点不同,这就是浏览器对任何不安全方法请求执行的所谓预检检查。

如果是这种情况,请使用django-cors-headers,并将 127.0.0.1 添加到允许的主机列表中。