我有一個使用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,再次沒有運氣。我嘗試了憑據:「同源」,並將這些選項以不同的方式組合,再次得到相同的結果。網站對此非常安靜,我做錯了什麼?