2013-06-27 4 views
0
내가 XMLHttpRequest의 데모 스크립트의 간소화 된 버전을 쓰기 위해 노력하고 있어요

여기에 표시된 :XMLHttpRequest의 연결을 확인

http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first

난 단지 iPad에서 이것을 사용하는거야, 내가 확인하지 않아도 IE의 이전 버전 등등. 버튼을 클릭하면 연결이 있는지 확인하고 싶습니다. 여기 내 전체 HTML 페이지는 자바 스크립트 스 니펫 (snippet)을 포함하여,이다 : 어떤 이상한 이유로

<html> 
<head> 
<script> 
var myURL = "http://www.google.com"; 

function testConnection(url) { 
    var xmlhttp; 

    xmlhttp = new XMLHttpRequest(); 

    xmlhttp.onreadystatechange = function() { 
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      alert("Connected!"); 
     } else { 
      alert("Not connected!"); 
     } 
    } 
    xmlhttp.open("GET", url, true); 
    xmlhttp.send(); 
} 
</script> 
</head> 
<body> 


<button type="button" onclick="testConnection(myURL)">Test Connection</button> 

</body> 
</html> 

, 내가 버튼을 클릭하면, 나는 반복받을 경고를 "연결되지 않음", 만 잠시 후, 온라인 해요 비록 I "연결됨"알림을 받고 알림이 표시되지 않습니다.

내가 엉망진 것처럼 보이지만 어디서 볼 수는 없습니다. 작동하도록 변경하려면 어떻게해야합니까?

답변

2

당신이 xhr2를 사용할 수있는 경우 this tutorial에서 물건을 배울 수있는이 같은에 코드를 다시 작성 : 존재하는 경우에도 다른 도메인에 요청을 보내는 경우

function testConnection(url) { 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.onload = function() { alert("Connected!"); } 
    xmlhttp.onerror = function() { alert("Not Connected"); } 
    xmlhttp.open("GET",url,true); 
    xmlhttp.send(); 
} 

, 당신이 경우 오류가 발생할 수 있습니다 대상 서버에는 동일한 도메인 - 정책 제한 사항 (기본값)이 있습니다. 대상 서버가 다른 도메인에있는 경우 헤더를 보내야합니다.

Access-Control-Allow-Origin: * 
+0

감사합니다. @Jan! –

+0

@ Figaro : 도메인 간 제한을 언급하는 것을 잊어 버렸습니다. 내 업데이트를 참조하십시오. –

+0

고맙습니다. 이 질문에 대한 답장을 직접 토대로 다른 질문을 한 번 보도록하겠습니다. –