Примечание: следует использовать в тех случаях, когда вам не нужно аутентифицировать пользователей для публикации чего-либо на нашем сервере, например, когда новый пользователь регистрируется впервые
я есть сервер GraphQL, реализованный с использованиемграфен-Джанго, Я могу сделать запросы к нему, используя jquery, как это:
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);
})
Однако, когда я пытаюсь сделать этот вызов с помощью Fetch, я получаю 403 из-за проблемы с CORS. Я решил ту же проблему в jQuery, добавив ajaxSetup ... перед вызовом.
Вот вызов с использованием fetch:
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, но не повезло. Я попытался добавить учетные данные: «включить» какдокументы говорятопять не повезло. Я попытался с учетными данными: «тот же источник» и комбинировал эти параметры по-разному, снова тот же результат. Веб необычно молчит об этом, что я делаю не так?