我有php脚本,用jquery ajax函数启动。类似这样的东西:
$("a.test").click (function () {
var new_id = $(this).attr("new_id");
$.ajax({
url: 'test.php',
type: "POST",
cache: false,
async: true,
data: ({
new_id : new_id
}),
success: function (data) {
alert (data);
},
error: function(){
alert('error');
}
});
return false;
});
现在,a在test.php中有一些错误,但我看不到它们。Srpt只是运行,我没有任何反馈,只有错误警报(alert('error'((。
我如何才能找回test.php中的错误来处理它们?
如果您echo
test.php中的错误,您可以简单地执行:
$.ajax({
url: 'test.php',
type: "POST",
cache: false,
async: true,
data: ({
new_id : new_id
}),
success: function (data) {
alert (data);
},
error: function(data){
alert('error:'+data);
}
});
return false;
});
编辑:
我通常做这样的事。在test.php中,如果您遇到错误,请使用错误信息创建一个数组,并将其返回json编码:
$message=array('error' => 1,'message' => '<div class="alert alert-danger" role="alert">' . $login['message'] . '</div>' );
echo json_encode($message);
现在,在您的jquery中,您可以通过以下方式检索错误:
success: function (data) {
alert (data);
},
error: function(data){
var obj = JSON.parse(data);
alert(obj.message);
}
当你把它放在这样的数组中时,你甚至不需要error: function(data)
了,因为你可以简单地:
success: function (data) {
var obj = JSON.parse(data);
if (obj.error) {
// do something
alert (obj.message);
}else{
// do something else
}
},
在test.php上,您可以使用此处解释的代码显示错误:https://stackoverflow.com/a/21429652/6525724
然后在这个页面上,你可以使用警报(数据(而不是警报("错误"(。
试试这个
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}