繁体   English   中英

jQuery AJAX请求显示AJAX和PHP错误

[英]JQuery AJAX request show AJAX and PHP errors

我正在使用Jquery $.post请求获取由PHP生成的JSON响应。 请求完成后,将显示成功或错误消息。 但是,在开发过程中,有时会出现PHP错误,最终会返回而不是JSON。 发生这种情况时,我只会收到错误消息:

SyntaxError:JSON.parse:JSON数据的第1行第1列出现意外字符

我现在的代码如下所示:

var request = $.post(url, data, null, "json");
request.fail(on_failure);
var on_failure = function(jqXHR, text_status, error_thrown)
{
    $("#text_status").empty().append(error_thrown);
};

我希望能够显示PHP错误(如果返回一个错误),而不仅仅是表明存在PHP错误(只是为了加快调试速度)。 显然,如果发生非JSON解析错误(例如HTTP 404),我仍然想显示该错误。 我在这里找到了一种方法,该方法指示我可以通过类似这种方法检测到此错误

$.ajaxSetup({
    error: function(jqXHR, exception) {
        if (exception === 'parsererror') {
            alert('Requested JSON parse failed.');
        }
    }
});

但这似乎对我没有帮助,因为它针对每个请求而不是单个请求运行,并且据我所知,它不允许访问返回数据中的错误消息。

不确定您使用的是哪个版本的jquery。 无论如何,您是否尝试删除json数据类型?

var request = $.post(url, data, null);

这样做jQuery将为您猜测dataType。

我讨厌窃取mkross1983的信誉,但是他没有回应我的要求,即把他的评论变成答案。 mkross1983说:

您是否尝试过使用“网络”标签下的Firebug查看请求结果? 有时在那里可以看到错误,可以为问题提供一些线索

Firebug的“ Net”选项卡已被证明是有价值的调试工具。 这样,我可以准确看到发出了什么请求以及发送给它的响应。 它甚至允许我查看与请求一起发送的标头和cookie。

谢谢mkross1983

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM