최신 웹 개발 튜토리얼
 

AJAX - 서버에 요청을 보내기


XMLHttpRequest 객체는 서버와 데이터를 교환하기 위해 사용된다.


서버에 요청을 보낼

서버에 요청을 보내려면, 우리는 사용 open()send() XMLHttpRequest 객체의 방법 :

xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
방법 기술
open(method, url, async) 요청의 유형을 지정

method : 요청의 유형 : GET 또는 POST
url : 서버 (파일) 위치
async : true (비동기) 또는 false (동기)
send() (사용 서버로 요청을 전송 GET )
send(string) (사용 서버로 요청을 전송 POST )

GET 또는 POST ?

GET 간단하고보다 빠른 POST , 대부분의 경우에 사용될 수있다.

그러나, 항상 사용 POST 경우 요청을 :

  • 캐시 된 파일은 옵션 (서버에있는 파일이나 데이터베이스를 업데이트)하지 않습니다.
  • 서버에 많은 양의 데이터를 전송 ( POST 더 크기 제한 없음).
  • (알 수없는 문자를 포함 할 수 있습니다) 사용자의 입력을 전송, POST 보다 견고하고 안전 GET .

GET 요청

간단한 GET 요청 :

xhttp.open("GET", "demo_get.asp", true);
xhttp.send();
»그것을 자신을 시도

위의 예에서, 당신은 캐시 된 결과를 얻을 수 있습니다. 이를 방지하기 위해 추가 된 고유 ID to the URL: ID to the URL:

xhttp.open("GET", "demo_get.asp?t=" + Math.random(), true);
xhttp.send();
»그것을 자신을 시도

당신이 가진 정보를 보내려면 GET 있어서, 상기 URL에 정보를 추가합니다 :

xhttp.open("GET", "demo_get2.asp?fname=Henry&lname=Ford", true);
xhttp.send();
»그것을 자신을 시도

POST 요청

간단한 POST 요청 :

xhttp.open("POST", "demo_post.asp", true);
xhttp.send();
»그것을 자신을 시도

하려면 POST , HTML 양식과 같은 데이터를 추가 HTTP header 함께 setRequestHeader() . 당신이에 보낼 데이터 지정 send() 방법 :

xhttp.open("POST", "ajax_test.asp", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("fname=Henry&lname=Ford");
»그것을 자신을 시도

방법 기술
setRequestHeader(header, value) 요청에 HTTP 헤더를 추가합니다

header : 헤더의 이름을 지정합니다
value : 헤더 값을 지정합니다

URL이 - 서버에있는 파일

url 의 매개 변수 open() 메서드는 서버에있는 파일에 주소 :

xhttp.open("GET", "ajax_test.asp", true);

이 파일은 .ASP와 (다시 응답을 전송하기 전에 서버에서 작업을 수행 할 수 있습니다) .php가 등이 .txt와 .xml 또는 서버 스크립트 파일과 같은 모든 종류의 파일이 될 수 있습니다.


비동기 - True 또는 False ?

AJAX는 비동기 자바 스크립트와 XML을 의미하고, XMLHttpRequest 객체는 AJAX의로 동작하는 async 의 매개 변수 open() 메소드 true로 설정해야합니다 :

xhttp.open("GET", "ajax_test.asp", true);

비동기 요청을 보내기 웹 개발자를위한 거대한 개선이다. 서버에서 수행되는 작업의 대부분은 매우 시간이 소모됩니다. AJAX하기 전에이 작업이 중단 또는 중지 할 수있는 응용 프로그램을 일으킬 수 있습니다.

AJAX와 자바 스크립트는 서버의 응답을 기다릴 필요가 없습니다, 대신 할 수 없습니다 :

  • 서버의 응답을 기다리는 동안 다른 스크립트를 실행할
  • 상기 응답을 처리 할 때의 응답 준비

Async=true

비동기 = 사실을 클래스 = "notranslate"를 사용하는 경우, 응답이 인 onreadystatechange 이벤트의 준비가되었을 때 실행하는 함수를 지정합니다

xhttp.onreadystatechange = function() {
  if (xhttp.readyState == 4 && xhttp.status == 200) {
    document.getElementById("demo").innerHTML = xhttp.responseText;
  }
};
xhttp.open("GET", "ajax_info.txt", true);
xhttp.send();
»그것을 자신을 시도

당신은 나중에 장에 인 onreadystatechange에 대한 자세한 내용을 배울 것입니다.


Async=false

사용하려면 async=false 의에서 세 번째 매개 변수 변경 open() 는 false 방법 :

xhttp.open("GET", "ajax_info.txt", false);

사용 async=false 권장하지 않습니다,하지만 몇 가지 작은 요청이 확인 될 수 있습니다.

서버 응답이 준비 될 때까지 자바 스크립트가 계속 실행되지 않습니다 것을 기억하십시오. 서버가 사용 중이거나 느린 경우, 응용 프로그램이 중단 또는 중지됩니다.

참고 : 사용하는 경우 async=false , 인 onreadystatechange 함수를 작성하지 마십시오 - 그냥 후에 코드를 삽입 send() 문 :

xhttp.open("GET", "ajax_info.txt", false);
xhttp.send();
document.getElementById("demo").innerHTML = xhttp.responseText;
»그것을 자신을 시도