graphene-djangoを使用して実装されたgraphqlサーバーがあります。私は理由CORSの問題のため、私は403を取得し、取得してこの呼び出しをしようとすると、しかしDjangoはFetchで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);
})
:私はこのようにjqueryのを使用して、それにクエリーを行うことができます。私は、呼び出し前に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();
})
は、私は、運jQueryの例ではなかったのと同様の方法で、身体にcsrfmiddlewaretokenを追加してみました。私は資格情報を追加しようとしました:the docs sayとして '含まれて'、再び幸運。私は資格情報を使って試しました:「同じ起源」とこのオプションを別々に組み合わせて、同じ結果を返します。これに関してWebは普通ではありませんが、何が間違っていますか?