如何解决错误 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的主要内容,如果未能解决你的问题,请参考以下文章
405 - 不允许用于访问此页面的 HTTP 动词。 [IIS 8.5] [Windows Server 2012 R2]