从AJAX获取错误消息时出现问题-仅在手机上出现错误

时间:2018-07-06 00:59:23

标签: ajax error-handling

我有一个基本的Web应用程序-一段时间没有任何错误。 有时-我不确定是什么网络问题,我不确定- 而且仅在手机(Android / chrome)上-基本的AJAX返回错误-但没有值。

这让我有些疯狂-因为我不知道如何调试空白错误。

基本的AJAX帖子:

$.post("<?php echo base_url(); ?>"+controller_G+"/"+Method_Param_G+"?"+Math.random()+"&SEARCH_STRING="+SEARCH_STRING_G, $("#"+Data_G).serialize(), function(data, status){
}).done(function(data){

    // OWNER SEARCH VIA APP
    if(data.indexOf("Search term found:") > -1){
        // Happy Days! :)
    }
}).fail(function(xhr, textStatus, errorThrown){
    $("#ajax_message").modal();
    $("#ajax_error_message_inner_text").html(textStatus+" -> "+errorThrown+" -> "+xhr.responseText);
});

ajax_message 会产生“ 错误->->未定义

我无法在桌面浏览器镶边中复制此错误-在那里一切正常。

了解以下内容也会有所帮助: 无论如何,在android / iphone中进行调试的典型方法是什么? 手机上的AJAX典型错误是什么?

当我在手机上重新加载页面时-正常操作会返回一段时间。 最终另一个错误返回。

2 个答案:

答案 0 :(得分:1)

错误事件没有“ xhr,状态,错误”参数。

尝试一下:

$.ajax({
    url: "<?php echo base_url(); ?>"+controller_G+"/"+Method_Param_G+"?"+Math.random(),
    type: 'POST',
    data: formData,
    cache: false,
    contentType: false,
    processData: false,
    success:function(data){
  // Happy days :)
},
error: function(jqXHR, exception){

    var msg = "";
    console.log(jqXHR);

    if (jqXHR.status === 0) {
        msg = 'Not connect.\n Verify Network.';
    } else if (jqXHR.status == 404) {
        msg = 'Requested page not found. [404]';
    } else if (jqXHR.status == 500) {
        msg = 'Internal Server Error [500].';
    } else if (exception === 'parsererror') {
        msg = 'Requested JSON parse failed.';
    } else if (exception === 'timeout') {
        msg = 'Time out error.';
    } else if (exception === 'abort') {
        msg = 'Ajax request aborted.';
    } else {
        msg = 'Uncaught Error.\n' + jqXHR.responseText;
    }

    console.log(msg);
}});

答案 1 :(得分:1)

使用chrome开发人员工具调试应用。浏览此Link

设置后,就像其他任何常规的Web调试一样,在“网络”选项卡中可以看到Ajax错误。