我有一个使用graphene-django实现的graphql服务器。我可以使用jquery这样进行查询到它:Django在POST请求上返回403错误,提取
function allIngredients() {
return 'query{allProducts{edges{node{name}}}}'
}
var query = allIngredients();
$.ajaxSetup({
data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
});
$.post("/graphql", {query: query}, function(response) {
console.log(response);
})
然而,当我尝试此调用与取,我得到一个403,因为CORS问题。我通过在调用之前添加ajaxSetup ...来解决jQuery中的相同问题。
下面是一个使用获取的呼叫:
fetch('/graphql', {
method: "POST",
headers: {
'Content-Type': 'application/json'
},
credentials: 'include',
body: JSON.stringify({
csrfmiddlewaretoken: '{{ csrf_token }}',
query:`{allProducts{
edges{
node{
id
name
orderPrice
sellPrice
}
}
}`})
}
)
.then(function(response) {
if (response.status >= 400) {
throw new Error("Bad response from server");
}
return response.json();
})
我尝试添加csrfmiddlewaretoken到身在类似的方式,我在jQuery的例子一样,没有运气。我尝试添加凭据:'包含'为the docs say,再次没有运气。我尝试了凭据:“同源”,并将这些选项以不同的方式组合,再次得到相同的结果。网站对此非常安静,我做错了什么?