Функция PHP не возвращает никаких данных в метод jjuery ajax
Я использую ajax метод jquery, чтобы отправить некоторые данные на сервер и получить ответ. Хотя php-код на стороне сервера возвращает строку / массив, закодированный в json, ответ возвращается как нулевой.
Может ли кто-то указать на ошибку, которую я совершаю. Ниже, если мой метод jquery ajax, с помощью которого я попадаю на страницу postData.php.
$.ajax({
url:'postData.php',
type:'POST',
data:data,
dataType: "json",
success: function(response){
console.log(response);
}
});
Содержание в postData.php довольно простое, так как я все еще его разрабатываю.
$data = array();
//inside postData.php
$data['test']=1;
return json_encode($data);
Он должен возвращать строку json, но возвращает ноль. Я также попытался отобразить строку сразу после объявления массива $ data, он отобразит ее в firebug, но в ответ я получаю console.log при успешном обратном вызове, он возвращается как нулевой.
3 ответа
Это все что есть в postData.php? Вам нужно записать его в буфер (echo json_encode($data);) в какой-то момент.
Чтобы получить результат обратно в вашу функцию ajax, вы должны повторить его, а не возвращать, например:
$data = array();
$data['test']=1;
echo json_encode($data);
Как указывал Моргар, вы должны возвращать данные и не использовать return.
$data = array();
$data['test']=1;
echo json_encode($data); //echo instead of return
В то же время в вашей функции ajax on success вы должны обращаться к ответу как к массиву.
**Incorrect**
console.log(response); //--> would return an error
**Should Be**
console.log(response[0]); //--> read the returned first array element