2012-07-19 4 views
0

저는 아직 AJAX에 처음으로 익숙하며 간단한 테스트가 작동하지 않는 이유를 알아 내려고하고 있습니다. 내가 읽은 것에서 AJAX는 하나의 도메인에서 작동하지 않을 것이고, 다른 단어들은 크로스 사이트 및 원격 서버처럼 팝업 될 것입니다. 어쨌든 내 문제는 내 코드가 잘못되었거나 단순히 내가하려는 일이 불가능한 것인지 잘 모르겠다는 것입니다. 단추를 클릭하면 데이터를 제출하는 간단한 아약스 요청을 만들었습니다. 다음은 첫 번째 스크립트 코드입니다. 여기 AJAX가 XAMPP에서 작동하지 않거나 불가능합니다.

<html> 
    <head> 
    <script type="text/javascript" > 
     function load(thediv, thefile) { 
     if (window.XMLHttpRequest) { 
      xmlhttp = new XMLHttpRequest(); 
     } 
     else { 
      xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); 
     } 
     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
      document.getElementById(thediv).innerHTML = xmlhttp.responseText; 
      }  
     } 
     xmlhttp.open('GET', thefile, true); 
     xmlhttp.send(); 
     } 
    </script> 
    </head> 
    <body> 
    <input type="submit" onclick="load('adiv', 'hello.php');"> 
    <div id="adiv"></div> 
    </body> 
</html> 

파일 hello.php

<?php 
    echo 'aaa'; 
?> 

답변

1

AJAX가 백그라운드에서 수행 단지 HTTP 요청입니다 코드입니다. 하지만 네, 임의의 서버에 대해 정상적인 Ajax 요청을하지 못하게하는 보안 제한이 있습니다.

코드가 누락 된 것은 실제로 요청을 보내는 URL을 설정하는 것입니다. load() 함수의 매개 변수로 hello.php이 있지만 실제로는 USE이 아닙니다. 그래서 당신은 AJAX 요청을하고 있습니다 ... "아무데도".

+0

온라인 웹 사이트에 업로드 할 실제 웹 서버에 업로드하려면 hello.php 파일을 다른 웹 서버에 넣은 다음 AJAX가 작동하도록 호출해야합니다. – jason328

+0

자바 스크립트 코드가있는 서버가 아닌 다른 서버에 대한 요청은 교차 도메인으로 간주됩니다. –

관련 문제