#javascript #php #jquery #ajax #laravel
#javascript #php #jquery #ajax #laravel
Вопрос:
Я пытаюсь добавить массив, поступающий из ответа, в некоторый контейнер с помощью функции javascript forEach. Но получение ошибки «response.cat_products.forEach не является функцией». В чем моя ошибка?
return response()->json([
'status' => true,
'message' => 'success',
'cat_products' => $cat_products,
'cat_count' => $cat_count
]);
if (response.status == true) {
response.cat_products.forEach(filter); //filter is a function
}
Комментарии:
1. @berend Мне пока не нужны элементы
myArray
. Я просто пытаюсь выполнить функциюfilter
для каждой строкиmyArray
Ответ №1:
Когда ответ возвращается от контроллера Laravel, например
return response()->json([
'status' => true,
'message' => 'success',
'cat_products' => $cat_products,
'cat_count' => $cat_count
]);
Тогда фактический массив доступен на стороне javascript в ответе.ключ данных.
Поскольку вы выполняете неполное сравнение в операторе if, оно сравнивается с response.status: 200, а не с вашим, указанным "status" => true
в ответе json
if (response.status == true) {
//response.data should contain the data sent as response from controller
console.log(response.data);
//response.cat_products.forEach(filter); //filter is a function
response.data.cat_products.forEach(filter); //this should work
}
Комментарии:
1. Спасибо за ваш ответ. Вы правы в том, что массив находится под ключом данных, но я должен написать
response.cat_products.data.forEach(filter)
. Это решило мою проблему