我有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;
});
现在,test.php中有一些错误,但我无法看到它们。 Sript只是运行而我没有反馈,只有错误警报(警告('错误'))。
我如何找回错误,我在test.php中处理它们?
答案 0 :(得分:2)
在test.php上,您可以使用此处说明的代码显示错误:https://stackoverflow.com/a/21429652/6525724
然后在此页面而不是警告('错误')您可以使用警报(数据)。
答案 1 :(得分:2)
如果您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
}
},
答案 2 :(得分:2)
试试这个
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("Status: " + textStatus); alert("Error: " + errorThrown);
}