Я пытаюсь сделать вызовы graphql из компонента React на сервер PHP, используя fetch
. Это первый раз, когда я пытаюсь использовать fetch
.
Я использую React JS на стороне браузера и Symfony 4 на стороне сервера. Однако все мои вызовы заканчиваются пустым телом на стороне сервера, хотя инструменты разработчика моего браузера, похоже, указывают, что данные отправлены.
При использовании graphiql запросы выполняются успешно. Я пытаюсь максимально имитировать запрос graphiql от React, но тело всегда пустое.
Вот звонок:
fetch('/api', {
'method': 'post',
'credentials': 'include',
'headers': {
'Content-Type': 'application/json',
},
'body': JSON.stringify({
"query": "mutation {UpdateActionStatus(input: {actionId: 61, status: TO_DO}) { id }}",
"variables": null
}),
}).then(r => {
console.log(r.json());
return r.json();
}).catch(error => {
console.log('There has been a problem with your fetch operation: ', error.message);
});
Я пробовал с mode
, установленным на cors
, no-cors
, same-origin
, navigate
: ничего из этого не работает.
Я пробовал с Firefox и Chrome: все равно не повезло.
Изменение типа контента на application/graphql
тоже не работает.
Я видел много вопросов, связанных с пустыми телами как в ответах, так и в запросах при использовании fetch
, в stackoverflow и в других местах, но ни одно из найденных решений не подходит для моего случая.
Я также пробовал следующий, гораздо более грубый вызов, но безрезультатно. Кажется, я просто не могу использовать fetch по причине, которую не могу объяснить:
fetch('/api', {
'method': 'post',
'credentials': 'include',
'headers': {
'Content-Type': 'application/x-www-form-urlencoded',
},
'body': 'test=test',
});
Что делать? Я пропустил что-то простое здесь?
index.php
, Symfony еще не ожидает какого-либо определенного формата в этой точке, но тело все еще пусто. - person Zephyr   schedule 16.01.2018