AJAX请求在微信环境报错XMLHttpRequest.status为0,请问是什么问题?

xiongwenhao 发布于 2017/11/10 14:50
阅读 1K+
收藏 0

AJAX请求在微信环境报错XMLHttpRequest.status为0,请 问是什么问题?
详细:

代码如下:

/**
 * 选座
 * @param id
 * @param type 0:选中  1:取消选中
 */
function ajaxchoose(id, type, ob){
    $.ajax({
        type : "POST",
        url : '/wechat/buyticket/ajaxchoose',
        dataType : 'json',
        async : false,
        data : {
            id : id,
            type : type
        },
        success : function(data) {
            if(data.code == 0){
                layeralter('该座位已锁定或已售出');
                $(ob).removeClass("jy-seat");
                $(ob).removeClass("jy-seat-hover");
                $(ob).addClass("jy-seat-none");
            }else{
                $('.prc').html('共<span>'+data.totalprice+'</span>元(<span>'+data.seatcount+'</span>张)');
                var len = data.seat.length;
                var result = '';
                $.each(data.seat, function (n, value) {
                    result += '<li>'
                        + '<p class="sts l">'+value.SeatDes+'</p>'
                        + '<p class="control r"><span>'+value.Amount+'元</span><a href="javascript:void:;" onclick="del('+value.Id+');" class="del"></a></p>'
                        + '</li>';
                });
                $('.p-list ul').html(result);
            }
        },
        /*error : function(data) {
            layeralter('网络异常');
        }*/
        error: function(XMLHttpRequest, textStatus, errorThrown) {
             alert(XMLHttpRequest.status); // 0
             alert(XMLHttpRequest.statusText); // error
             alert(XMLHttpRequest.readyState); // 0
             alert(XMLHttpRequest.responseText);// undefined
             alert(textStatus);// error
             alert(errorThrown);// 空  
        }
    });
}

嵌到app中或者直接用手 机浏览器打开网页,ajax没有问题。
只有在微信中访问时,10%左右机率会跑到error方法里面,监听ajax结果 为:
 XMLHttpRequest.status : 0
 XMLHttpRequest.statusText :  error
 XMLHttpRequest.readyState: 0
 XMLHttpRequest.responseText:undefined
 textStatus:error
 errorThrown : 空  

监听jq ajax源码抛出来的异常:

 

NetworkError(DOM Exception 19): A network error occurred

 

问题:

现在的解决办法是改成了get请求方式就没有出现过跑到error里面去了,请问出现这种情况的原因是什么?为什么改成get就不会出错了?

加载中
返回顶部
顶部