@lemonlimelike

Почему приходит пустой массив?

Отправляю на сервер данные методом fetch:
var inputHeader = document.getElementById('search');
var urlHeader = '/api/search';
var tokenHeader = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
var postdata = new Headers({
    'Content-Type': 'application/json',
    'X-CSRF-TOKEN': tokenHeader
});
inputHeader.oninput = function() {
    if(inputHeader.value.length >= 2){
        var paramHeader = inputHeader.value;
        fetch(urlHeader, {
            method: 'POST',
            postdata,
            body: JSON.stringify({str: paramHeader})
        })
        .then(function(response){
            return response.json()
        })
        .then(function(data){
            console.log(data)
        })
    }
};


Переменная postdata не пустая.

Вот метод, который принимает эти данные:
public function search(Request $request)
    {
        dd($request->all());
    }


Пытаюсь вывести то что пришло, а приходит ничего, пустой массив:
5be1f4a36bf6a264491384.png

А вот параметры которые идут на сервер:
5be1f4b386159621658042.png

Почему возвращается пустой массив? В чем проблема?
  • Вопрос задан
  • 1156 просмотров
Пригласить эксперта
Ответы на вопрос 2
@LemonFox
stateless mind
Смотрите что приходит в php://input

file_get_contents('php://input');
Если данные есть - смотрите в документации по ларавел (не указана версия) как получить данные из json request.
Если нет - то ошибка где-то в fetch()
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Так посмотрите, с каким HTTP-кодом был ответ сервера (закладка "Заголовки").
Если там 200-ый код - тогда смотрите errorlog на сервере, присутствуют там ошибки али нет...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы