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)
请我需要帮助
这看起来像是您的 CORS 中的问题。如您所见,客户端发送OPTIONS而不是POST. 如果页面的域、主机或端口与端点不同,这就是浏览器对任何不安全方法请求执行的所谓预检检查。
如果是这种情况,请使用django-cors-headers,并将 127.0.0.1 添加到允许的主机列表中。