ajax如何设置超时时间?

ajax如何设置超时时间?,第1张

<script type=”text/javascript”>

function getXMLHttpRequest()

{

var xhr = false

if ( window.XMLHttpRequest )

{

xhr = new XMLHttpRequest()

if ( xhr.overrideMimeType )

{

xhr.overrideMimeType(”text/xml”)

}

}else if ( window.ActiveXObject )

{

try{

xhr = new ActiveXObject(”Msxml2.XMLHTTP”)

}catch(e)

{

try{

xhr = new ActiceXObject(”Microsoft.XMLHTTP”)

}catch(e)

{

xhr = false

}

}

}

return xhr

}

window.onload = function()

{

var _x = getXMLHttpRequest()//获得XMLHttpRequest对象

if ( !_x ) return false

_x.open(”get”,http://www.baidu.com,true)

_x.onreadystatechange = function()

{

if ( _x.readyState == 4 &&_x.status == 200 )

{

clearTimeout(clearTO)//如果准备状态成功,并且HTTP状态码正确则清除setTimeout

alert(”Success”)

}

}

var cleaeTO = setTimeout(function() /*重点,在请求发布后开始设置setTimeout,如果请求状态不成功也就是readyState != 4 那么setTimeout将会在5秒后运行,并d出信息提示,要是请求成功,将会清除该setTimeout*/

{

_x.abort()//终止XMLHttpRequest对象

alert(”系统异常,请您刷新页面或稍后再试….”)

},50000)

_x.send(null)

}

</script>

ajax请求时有个参数可以借鉴一下

var ajaxTimeOut = $.ajax({

url:'', //请求的URL

timeout : 1000, //超时时间设置,单位毫秒

type : 'get', //请求方式,get或post

data :{}, //请求所传参数,json格式

dataType:'json',//返回的数据格式

success:function(data){ //请求成功的回调函数

alert("成功")

},

complete : function(XMLHttpRequest,status){ //请求完成后最终执行参数

if(status=='timeout'){//超时,status还有success,error等值的情况

  ajaxTimeOut.abort()//取消请求

  alert("超时")

}

}

})

设置timeout的时间,通过检测complete时status的值判断请求是否超时,如果超时则取消请求


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11232716.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-14
下一篇2023-05-14

发表评论

登录后才能评论

评论列表(0条)

    保存