$.getJSON 不返回任何数据
$.getJSON not returning any data
我正在尝试在本地主机上测试 $.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'
.
您应该将警报包装到匿名函数中:
$.getJSON('http://localhost/ewoe/server.php?name=natasha&age=22', function(data) {
alert(data.name);
});
问题实际上出在 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', ...);
-
注意
真的不知道你在那里做什么,但请注意,请注意可能对你的脚本进行的操作。
通过这样做,其他人可以看到您的文件来源并通过转到 www.yoursite/ewoe/server.php?name=....
向 server.php
发送请求
也许你应该在 PHP 和 jQuery $.post
中使用 $_POST
请求 json 格式,像这样:
$.post('server.php', {name : 'natasha', age: 22}, function(response) {
console.log(response.name)
}, 'json');
我正在尝试在本地主机上测试 $.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'
.
您应该将警报包装到匿名函数中:
$.getJSON('http://localhost/ewoe/server.php?name=natasha&age=22', function(data) {
alert(data.name);
});
问题实际上出在 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', ...);
- 注意
真的不知道你在那里做什么,但请注意,请注意可能对你的脚本进行的操作。
通过这样做,其他人可以看到您的文件来源并通过转到 www.yoursite/ewoe/server.php?name=....
server.php
发送请求
也许你应该在 PHP 和 jQuery $.post
中使用 $_POST
请求 json 格式,像这样:
$.post('server.php', {name : 'natasha', age: 22}, function(response) {
console.log(response.name)
}, 'json');