2015-01-18 1 views
0

내가 앉기 전에 상황을 설명해 줄 수있게 해주세요.자바 스크립트에서 HTTP 응답을받는 방법은 무엇입니까?

  1. 나는 폼에서 정보를 얻는 html (A.html) 페이지가 있습니다. 데이터를 PHP 페이지 (예 : B.php)로 보냅니다.

  2. B.php는 양식을 처리하고 화면에 문자열을 표시합니다.

  3. 자바 스크립트 페이지 (Say C.js)는 B.php로 HTTP 요청을 보내고 에코 된 내용을 읽어야합니다.

그런 것도 가능합니까? 나는 많은 것을 수색했고 아무런 설명도하지 않았다.

+0

당신이 아마 수 있습니다 원하는 것은 AJAX –

+1

에 대해 읽어하지만,는 X/Y의 문제 같은 소리하시기 바랍니다 다른 페이지에 사용자 작업의 결과를 액세스 한 페이지 폼을 제출하고 백그라운드에서 결과를 반환하기 위해 아약스를 찾는 것이 아니라고 확신하십니까? – adeneo

+0

아약스 요청을 하시겠습니까? – arkascha

답변

1

AJAX를 사용해야합니다.

  1. 하는
  2. 는 JS를 통해 기능을

파일 A.html을

  • 포스트 데이터를 onreadystatechange의 설정
  • XMLHttpRequest 객체를 생성합니다 :

    그것은 3 단계를 마무리

    <html> 
     
    \t <input id="text" type="text" value="Hello"/> 
     
    \t <input type="button" value="getResponse" onclick="getResponse();"/> 
     
    \t <script> 
     
    \t var xmlhttp; 
     
    \t //Create XMLHttpRequest Object 
     
    \t if (window.XMLHttpRequest) 
     
    \t {// code for IE7+, Firefox, Chrome, Opera, Safari 
     
    \t \t xmlhttp=new XMLHttpRequest(); 
     
    \t } 
     
    \t else 
     
    \t {// code for IE6, IE5 
     
    \t \t xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
     
    \t } 
     
    \t //this function will be triggered after "xmlhttp.send" finished 
     
    \t xmlhttp.onreadystatechange=function() 
     
    \t { 
     
    \t \t //readyState==4 means success, and status==200 means 'OK' 
     
    \t \t if (xmlhttp.readyState==4 && xmlhttp.status==200) 
     
    \t \t { 
     
    \t \t \t alert(xmlhttp.responseText); 
     
    \t \t } 
     
    \t } 
     
    \t // send post data via your web element 
     
    \t function getResponse(){ 
     
    \t \t var text = document.getElementById("text").value; 
     
    \t \t //send data and get response 
     
    \t \t xmlhttp.open("POST","b.php",true); 
     
    \t \t xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); 
     
    \t \t xmlhttp.send("text="+text); 
     
    \t } 
     
    \t </script> 
     
    </html>

    그리고 파일 b.php :

    <?php 
    $text = $_POST['text']; 
    echo "The length of your text $text is ".strlen($text); 
    
    +0

    감사합니다. . 그러나 'b.php'를 www URL로 변경하면 응답이 생성되지 않습니다! 왜? – user3041058

    +1

    새 도메인은 교차 도메인 방문이 허용되지 않고 안전하지 않기 때문에 현재 페이지 (a.html)와 동일한 도메인 (또는 IP)에 있어야합니다. 페이지 경로 매개 변수에서 상대 주소를 사용하기 만하면됩니다. – Bandon