首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xmlHttpRequest readyState卡在1

xmlHttpRequest readyState卡在1
EN

Stack Overflow用户
提问于 2015-05-27 18:43:23
回答 1查看 1.7K关注 0票数 1

我有一个简单的ajax代码(我试图在更新我的站点之前检查一个xml文件是否已经更改),但是由于某种原因,readystate停留在1上,并且onReadyStateChanged事件处理程序没有启动。

这是我的javascript

代码语言:javascript
复制
 window.setInterval(updateCount, 1000);
    var xmlhttp = init();

    function updateCount() {
        i = document.getElementById("updater")
        if (i.value != "") {
            if (xmlhttp.readyState == 4 || xmlhttp.readyState == 0) {
                xmlhttp.onreadystatechange = update_chacker;
                xmlhttp.open("GET", i.value, true);
                xmlhttp.send;
            }
        }
    }

    function init() {
            if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
                return new XMLHttpRequest();
            }
            else {// code for IE6, IE5
                return new ActiveXObject("Microsoft.XMLHTTP");
            }
        }

    function update_chacker() {

        var txt, x, xx, i;
        console.log("readystate = " + xmlhttp.readyState);
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            xx = document.getElementById("MessagesBulletedList");
            x = xmlhttp.responseXML.documentElement.getElementsByTagName("Message");
            if (x.length > xx.getElementByTagName('li').length) {
                var clickButton = document.getElementById("updater");
                clickButton.click();
            }
        }
    }

HTML (不太重要,但如果您想要理解这里的引用,它就是)

代码语言:javascript
复制
<form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" />
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" width="300px" UpdateMode="Always" OnLoad="UpdatePanel1_Load" ViewStateMode="Enabled">
        <ContentTemplate>
            <asp:PlaceHolder ID="ph" runat="server"></asp:PlaceHolder>

            <br />
            <asp:Label ID="chatterLbl" runat="server" />
            <br />
            <div id="ChatText" style="width: 640px; height: 240px; overflow: auto;">
                <asp:BulletedList ID="MessagesBulletedList" runat="server" />
            </div>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="SendButton" EventName="Click" />
            <asp:AsyncPostBackTrigger ControlID="updater" EventName="Click" />
        </Triggers>
    </asp:UpdatePanel>


    <div hidden="hidden"> <asp:Button ID="updater" runat="server" Text="" /> </div>
    <br />
    <asp:UpdatePanel ID="UpdatePanelTextBox" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <asp:TextBox ID="NewMessageTextBox" Columns="50" runat="server" />
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:Button ID="SendButton" Text="Send" runat="server" OnClick="SendButton_Click" />
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-27 18:45:38

你从不打电话给我

代码语言:javascript
复制
xmlhttp.send;

需要的是

代码语言:javascript
复制
xmlhttp.send();
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30490651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档