$ .getJSON не возвращает никаких данных

Я пытаюсь проверить $ .getJSON () на локальном хосте, но данные не возвращаются.

Пожалуйста, поправьте меня, если я ошибаюсь.

PHP:

$person['name'] = !empty($_GET['name']) ? $_GET['name'] : 'name';
$person['age'] = !empty($_GET['age']) ? $_GET['age'] : '00';

return json_encode($person);
?>

HTML / JQuery:

<script>
$(document).ready(function(){
$('.start').click(function(){
$.getJSON('http://localhost/ewoe/server.php?name=natasha&age=22', alert(data.name));
})
}); //end ready
</script>

Все файлы можно найти в одном каталоге.
Хотя ошибка, которую я получаю после нажатия кнопки .start, 'data not set',

1

Решение

Проблема на самом деле в выводе PHP.
Причина в том, что PHP, будучи языком на стороне сервера, не выводит в HTML материал с return, Если хотите распечатать их ты должен echo их.

Следовательно return это не ответ, ответ echo,

Ваш php должен быть:

<?php

$person['name'] = !empty($_GET['name']) ? $_GET['name'] : 'name';
$person['age'] = !empty($_GET['age']) ? $_GET['age'] : '00';

echo json_encode($person);

Если вы получаете ошибки на No 'Access-Control-Allow-Origin' Вы должны попытаться указать локальный путь, а не полный путь:

$.getJSON('server.php?name=natasha&age=22', ...);


НОТА

На самом деле не знаю, что вы там делаете, но обратите внимание на возможные манипуляции с вашим сценарием.

Делая это, кто-то может увидеть источник вашего файла и отправить запрос на server.php перейдя в www.yoursite/ewoe/server.php?name=....

Возможно, вам следует использовать $_POST в PHP и JQuery $.post запрашивая формат json, вот так:

$.post('server.php', {name : 'natasha', age: 22}, function(response) {
console.log(response.name)
}, 'json');
1

Другие решения

Вы должны включить предупреждение в анонимную функцию:

$.getJSON('http://localhost/ewoe/server.php?name=natasha&age=22', function(data) {
alert(data.name);
});
0

По вопросам рекламы [email protected]