0

我正在尝试向我的 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 错误回调中使用它?

任何帮助表示赞赏。

4

1 回答 1

0

我通常构建一个 JSON 响应而不是 xml,但想法应该是相同的。您可以从包含以下内容的数组构建响应,而不是返回任何类型的服务器错误:

array('success'=>true);

或者

array('success'=>false, 'message'=>"Couldn't do it because ..blah..");

然后,当我处理 json 时success

if(json['success']) { ... } //yay, it worked!  reload the page or something
else if(json['message']) alert(json['message']);
else alert('Unknown error');

这允许您的控制器向用户发送有意义的消息。或者您可以添加另一个数组键['error'],您可以使用浏览器的开发控制台进行检查。

你的方法可能会有所不同,返回一些 jqXHR 可以处理的东西,但想法很相似。

于 2014-05-06T02:53:16.360 回答