日期:2014-05-16  浏览次数:20722 次

为什么我的AJAX的error函数执行了两次~
有两个疑问:
1、以下代码断网后运行,会弹出窗两次“断网了”,手机和PC上都是。
2、关于超时,设置的是10秒,PC上会尝试10秒,但是手机上断网后直接就弹出来提示框了。
<script>
$.ajaxSetup({  
timeout:10000,
        async : false  
    });  
var vlink;  
function loadSalesInfo(link,salesNo)  
    {  
        var queryUrl="../ajax/ajax.php";  
        vlink = document.getElementById("mr");

$.ajax({
url:queryUrl,
type:"POST",
data:{name:name},
timeout:10000,
dataType:"json",
success:function(data){
//var msgJson = eval(data); dataType为json,就不用转了
if (data == "0") {
  vlink.target="leftframe";  
                                 vlink.disabled=true;  
                                 vlink.href="/salesBaseAction.do?method=loadCustForSalesByCustNo&custno="+salesNo;  
  alert("提示:当前时间不允许外拨!1"); 
} else {
  vlink.target="leftframe";  
                                 vlink.disabled=true;  
                                 vlink.href="/salesBaseAction.do?method=loadCustForSalesByCustNo&custno="+salesNo;  
  alert("提示:当前时间不允许外拨!1"); 
}
},
error:function(){alert("断网了");}
});
    } 


</script>

------解决方案--------------------
      dataType:"json",
        success:function(data){
        //var msgJson = eval(data); dataType为json,就不用转了
        if (data == "0") {
  vlink.target="leftframe"; 


你指定返回数据类型为json,但是看你代码使用的又不是json对象,这样会执行到error代码

至于为什么执行2次error,自己用 浏览器的开发工具监视下发送了多少次请求,有可能和#3说的一样