2012-10-26 6 views
0

내 코드가 간단합니다. 내가 useXMLHttpRequest.Yes를 호출 할 때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); 

}

, 그것은 xmlhttp.responseText의 값을 알려줍니다. 하지만 경고하지 않습니다 ("ss"). IE9와 파이어 폭스 모두. 누구나 나에게 어떤 것이 있는지 말할 수 있습니까?

답변

2

JavaScript (및 내가 알고있는 다른 모든 언어)는 대소 문자를 구분하므로 onreadystatechangeonReadyStateChange과 같지 않습니다.

이 대신보십시오 :

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

예,이 질문을 게시 한 후에이 문제를 발견했습니다. 어리석은 나. –

0

당신은

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

3 매개 변수는 동기 요청을 사용하는 것을 의미한다 false입니다 있습니다. 그러한 요청에 대해서는 onreadystatechange가 작동하지 않으므로 사용하지 않는 것이 좋습니다. 어쨌든, 귀하의 요청은 완료 될 때까지 더 이상 진행되지 않으므로 xmlhttp.send("i=5"); 바로 뒤에 이 올바르게 작동하며 요청 상태 변경 이벤트를 처리 할 필요가 없습니다.

더보기 : herehere