如何解决错误 405 方法不允许,用于 django graphql 服务器并在前端反应 axios

Posted

技术标签:

【中文标题】如何解决错误 405 方法不允许,用于 django graphql 服务器并在前端反应 axios【英文标题】:How to solve error 405 method not allowed, for django graphql server and react axios in front end 【发布时间】:2018-12-14 16:47:17 【问题描述】:

嗨,我很难解决这个问题我有 django graphql 服务器正在为我的本地机器端口 8000 运行,当我在失眠中查询它时一切正常,但我正在与前端集成 @987654323 @ 和 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】:

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

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

【讨论】:

以上是关于如何解决错误 405 方法不允许,用于 django graphql 服务器并在前端反应 axios的主要内容,如果未能解决你的问题,请参考以下文章

Web Api - 不允许使用 Catch 405 方法

如何打印错误 405 方法不允许用户使用

405 - 不允许用于访问此页面的 HTTP 动词。 [IIS 8.5] [Windows Server 2012 R2]

Flask 文件上传返回错误 405 方法不允许

错误 405 方法不允许,redirect(url_for('index'))

方法不允许 (POST) Django 405 错误