【问题标题】:My onReadyStateChange is never called,why?我的 onReadyStateChange 永远不会被调用,为什么?
【发布时间】:2012-10-26 13:37:25
【问题描述】:

我的代码很简单。

function useXMLHttpRequest() {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "test.ashx", false);
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
xmlhttp.onReadyStateChange = function () {
    alert("ss");
};
xmlhttp.send("i=5");
alert(xmlhttp.responseText);

}

当我调用 useXMLHttpRequest.Yes 时,它会提醒 xmlhttp.responseText 的值。但它不会提醒(“ss”)。在 IE9 和 Firefox 中。 谁能告诉我穿的是什么?

【问题讨论】:

    标签: javascript ajax xmlhttprequest onreadystatechange


    【解决方案1】:

    JavaScript(以及我知道的所有其他语言)区分大小写,因此onreadystatechangeonReadyStateChange 不同。

    试试这个:

    xmlhttp.onreadystatechange = function() {
        alert("ss");
    };
    

    【讨论】:

    • 是的,我在发布这个问题后发现了这个问题。真是愚蠢的我。
    【解决方案2】:

    你有

    xmlhttp.open("POST", "test.ashx", false);
    

    第三个参数是false,表示你使用的是同步请求。对于此类请求,onreadystatechange 不起作用,不鼓励使用它。无论如何,您的请求在完成之前不会继续进行,因此在xmlhttp.send("i=5"); 之后的alert(xmlhttp.responseText); 可以正常工作,无需处理请求状态更改事件。

    查看更多 herehere

    【讨论】:

      猜你喜欢
      • 2013-03-13
      • 2013-07-22
      • 2018-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多