我试图向我的AJAX请求返回有用的错误消息,我可以使用客户端向用户显示。
我正在使用jQuery发出请求,如下所示:
$.ajax({
url: 'myURL.php',
data: { id: someId },
type: 'POST',
success: function(response) {
// do something with response
},
error: function(jqXHR) {
// here is where I want to do something with jqXHR.responseText
// but how do I set that in PHP?
}
});
如果我的PHP脚本中出现了一些错误,我使用以下标题:
header("HTTP/1.1 500 Internal Server Error");
所以我的问题是,如何在该标头中包含一些有用的错误消息,这些消息将被放到jqXHR的responseText属性中,然后我可以在我的jQuery错误回调中使用它?
感谢任何帮助。
答案 0 :(得分:0)
我通常构建一个JSON响应而不是xml,但这个想法应该是相同的。您可以在包含以下内容的数组中构建响应,而不是返回任何类型的服务器错误。
array('success'=>true);
或
array('success'=>false, 'message'=>"Couldn't do it because ..blah..");
然后,当我在success
处理json时:
if(json['success']) { ... } //yay, it worked! reload the page or something
else if(json['message']) alert(json['message']);
else alert('Unknown error');
这允许您的控制器向用户发送有意义的消息。或者您可以添加另一个数组键,如['error']
,您可以使用浏览器的开发控制台进行检查。
您的方法可能会有所不同,返回可由jqXHR处理的内容,但这个想法足够相似。