Ajax请求xmlhttp.readyState总是等于0解决办法

问题描述:

问题描述:xmlhttp.readyState总是等于0,readyState状态无法改变。
有错代码:

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.6.0.min.js"></script>
<script>
    $(document).ready(function () {
        $("input[id='username']").blur(function () {
            $(this).addClass("checkUsername");
            xmlHTTP = new XMLHttpRequest(); //全局变量
            xmlHTTP.onreadystatechange = checkUsername();  //回调函数
            xmlHTTP.open("GET","checkusername");  //开启连接
            xmlHTTP.send(null);
        })
    });
    function checkUsername() {
        console.log("111");
        console.log(xmlHTTP.readyState);
        if (xmlHTTP.readyState == 4) {
            if (xmlHTTP.status == 200) {
                console.log("222");
                console.log(xmlHTTP.responseText);
            }
        }
    }
</script>

有错代码运行测试如截图,很显然它的readyState=0
图片描述

原因及解决方法:

原因是我的回调函数后面多加了一个括号,现做出修改如下:

xmlHTTP.onreadystatechange = checkUsername;  //回调函数

后面终于得到我想要的结果了,每次readyState改变都会调用onreadystatechange函数,结果如下图:

图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
if (x == 1){ xmlhttp.open("post", "../cgi-bin/getxml", false); SafeHttpSend(xmlhttp, "cmd=get"+";func=netRTSPCfgEx"); try{ if (xmlhttp.readyState==4 && xmlhttp.status==200){ xmlDoc=xmlhttp.responseXML; RTSPPORT = xmlDoc.getElementsByTagName("rtspport")[0].childNodes[0].nodeValue; } }catch(e) {alert(ALERTGETRTSPPORT);} xmlhttp.open("post", "../cgi-bin/getxml", false); SafeHttpSend(xmlhttp, "cmd=get"+";func=localCfgEx"); try{ if (xmlhttp.readyState==4 && xmlhttp.status==200){ xmlDoc=xmlhttp.responseXML; FILEPATH = xmlDoc.getElementsByTagName("RecPath")[0].childNodes[0].nodeValue; } }catch(e) {alert(ALERTGETFILEPATH);} xmlhttp.open("post", "../cgi-bin/getxml", false); SafeHttpSend(xmlhttp, "cmd=get"+";func=videoEncodingCfgEx"); try{ if (xmlhttp.readyState==4 && xmlhttp.status==200){ xmlDoc=xmlhttp.responseXML; MainType = xmlDoc.getElementsByTagName("encoder")[0].childNodes[0].nodeValue; MainCif = xmlDoc.getElementsByTagName("sys_cif")[0].childNodes[0].nodeValue; Mainfps = xmlDoc.getElementsByTagName("frmrate")[0].childNodes[0].nodeValue; SubType = xmlDoc.getElementsByTagName("encoder2")[0].childNodes[0].nodeValue; SubCif = xmlDoc.getElementsByTagName("sys_cif2")[0].childNodes[0].nodeValue; Subfps = xmlDoc.getElementsByTagName("frmrate2")[0].childNodes[0].nodeValue; ThirdType = xmlDoc.getElementsByTagName("encoder3")[0].childNodes[0].nodeValue; ThirdCif = xmlDoc.getElementsByTagName("sys_cif3")[0].childNodes[0].nodeValue; Thirdfps = xmlDoc.getElementsByTagName("frmrate3")[0].childNodes[0].nodeValue; } }catch(e) {alert(ALERTGETFILEPATH);} }
06-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值