我尝试通过使用此语法(服务器端)回显数组来回应ajax请求
echo json_encode($a);
在我的客户端,我有这个功能:
$.ajax({
url:'loaddata.php',
dataType:'json',
success:function(data){
alert(data);
}
});
但没有任何反应。问题出在哪儿?为什么json_encode()
不起作用?
答案 0 :(得分:1)
假设"没有任何事情发生" 而您的$.ajax
缺少error
处理程序,我会假设您的PHP代码输出一些致命错误;因此,AJAX不会触发任何事情。
这是您想要照顾的内容
header('Content-Type: Application/json')
添加到您的success
回调文件中,以便将回复解析为JSON
。$a
是一个数组,json_encode()
接受array
。将error
处理程序添加到$.ajax
$.ajax({
url:'loaddata.php',
dataType:'json',
success:function(data){
console.log(data);
},
error: function(){
console.log('something went wrong');
}
});
不使用alert()
,而是使用console.log(data)
并使用开发工具,网络标签(推荐)或控制台日志标签跟踪输出。
答案 1 :(得分:0)
假设您编码的数据是评论者声明的数组,您还需要设置
$a = array("key" => "value");
header('Content-Type: application/json');
echo json_encode($a);
在PHP脚本中。
答案 2 :(得分:-1)
这里没有足够的信息来确定问题,但如果没有任何事情发生,那么loaddata.php就不存在了。您确定该文件存在于正确的位置并且名称是否正确?
另一种可能性是PHP代码中的$ a变量具有空值。
您是否通过更改字符串验证了ajax调用的工作原理?像alter(' test')之类的东西?如果那表明那么ajax url应该没问题,那么问题将在PHP方面。