我想对php文件执行一个简单的json调用,但不知怎的,它总是返回错误。
这是我的html(dataString填充了表单值):
$.ajax({
type: "POST",
url: "reghandle.php",
data: dataString,
dataType: "json",
success: function(result){
$("#modaltitle").html("Welcome");
$("#errorDetails").html(result.responseText);
$('#myModal').modal('show');
},
error: function(result){
$("#modaltitle").html("Error:");
$("#errorDetails").html(result.responseText);
$('#myModal').modal('show');
}
});
我的php文件(我使用$ num_rows产生错误或成功):
if ($num_rows>0){
echo "error and blablabla";
header('HTTP/1.1 500 Internal Server Booboo');
header('Content-Type: application/json; charset=UTF-8');
return json_encode(array("error" => "bad table name"));
}else{
echo "ok";
header('Content-Type: application/json; charset=UTF-8');
return json_encode(array("success" => "blablabla"));
}
如果我让我的php文件产生错误,模式屏幕弹出:
(这都是正确的)
如果我让我的php文件成功,模态屏幕弹出:
从我的php文件中返回成功时出现了一些错误,但我还没有弄清楚它是什么。
答案 0 :(得分:1)
echo "ok";
将其分为两个方面:
你是return
JSON(如果你将它返回到任何有用的地方,它是不清楚的)而不是echo
它。
答案 1 :(得分:1)
因为echo "error and blablabla";
和echo "ok";
不是json!
删除这些。
答案 2 :(得分:0)
您告诉Jquery,只有来自服务器的JSON响应才会被视为成功,但您没有发送JSON响应。
所以,请注意以下几点:
简而言之,如果你删除当前的回声线,然后用回声替换你的回报,那么它应该可以工作。