Ответ
Метод GET может иметь тело запроса, но согласно стандарту HTTP/1.1 (RFC 7231), серверы могут его игнорировать. На практике большинство серверов и прокси не обрабатывают тело в GET-запросах.
Пример с fetch:
fetch('/api/data', {
method: 'GET',
body: JSON.stringify({ param: 'value' }), // Не рекомендуется
headers: {
'Content-Type': 'application/json'
}
});
Лучше передавать данные через URL-параметры (?key=value) или заголовки. POST/PUT - более подходящие методы для передачи тела.
Ответ 18+ 🔞
Да ты посмотри, какой прикол-то! Сидят эти умники, пишут на своих реактах, и вдруг — бац! — суют тело в GET-запрос. Ну, типа, «а чё такого-то? fetch позволяет!».
Ага, позволяет, блядь! Как в том анекдоте: «Можно, но нужно ли?». По стандарту, этот самый RFC 7231, сервер имеет полное право взять и проигнорировать твоё тело, как назойливую муху. И большинство так и делает, ёпта! Прокси, балансировщики — все эти ребята могут просто отрезать твои драгоценные данные, и привет, чувак.
Смотри, какой код подсовывают, хитрожопые:
fetch('/api/data', {
method: 'GET',
body: JSON.stringify({ param: 'value' }), // Не рекомендуется
headers: {
'Content-Type': 'application/json'
}
});
Видишь эту строчку? «Не рекомендуется». Это они мягко сказали, блядь. На самом деле это «делай так, если хочешь, чтобы всё накрылось медным тазом». Сервер тебе может ответить: «Чё за хуйню ты мне прислал?», а то и вообще проигнорирует.
Вот честно, зачем выёбываться? Есть же нормальные, человеческие способы. Хочешь данные передать — вперёд:
- URL-параметры, ёбушки-воробушки:
?param=value&name=Петрович. - Заголовки, если очень секретно.
- А если данных овердохуища, или они сложные — бери POST или PUT. Они для этого и придуманы, блядь!
А то получится, как с Герасимом: «Муму!» — а ему в ответ тишина, потому что сервер его тело не услышал. И стоило ли огород городить? В рот меня чих-пых!
Короче, вывод простой: не умничай, иди проверенными путями. GET — для получения, POST/PUT — для отправки данных. И будет всем счастье, а не волнение ебать, где же твой запрос потерялся.