2012-10-26 130 views
0

我的代码很简单。我的onReadyStateChange永远不会被调用,为什么?

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中。 任何人都可以告诉我什么是worng?

回答

2

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

试试这个:

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

是的,我发布这个问题后,我发布这个问题。什么是愚蠢的我。 –

0

你有

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

第三个参数是false,这意味着你使用的同步请求。对于这种onreadystatechange请求不起作用,不鼓励使用它。无论如何,你的请求将不会进一步完成,所以之后立即xmlhttp.send("i=5");正常工作,并且不需要处理请求状态更改事件。

查看更多herehere

相关问题