JavaScript AJAX 서버에 요청

    2018-05-10 15:54:31 작성

    서버에 요청 보내기

    XMLHttpRequest 객체의 open()과 send()메서드를 사용하여 서버에 요청을 보냅니다.

    • GET 요청

      GET은 POST보다 간단하고 빠릅니다.
      URL의 쿼리스트링 매개변수를 추가해 서버에 요청할 수 있습니다.
      이름과 값은 반드시 encodeURIComponent() 메서드로 인코드해서 보내야 합니다.

    • POST 요청

      POST 요청은 매우 많은 데이터를 쓸 수 있으며, 데이터 형식에도 제한이 없습니다.
      POST 데이터를 HTML 폼처럼 보내려면 setRequestHeader() 메서드로 HTTP헤더를 추가해야 합니다.

      setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

    • 비동기식/동기식 요청

      비동기식 요청은 자바스크립트가 서버의 응답을 기다리지 않고 다음 동작을 수행 할 수 있습니다.

      그러나 때때로 동기 방식으로 서버와 연결해야 할 경우가 있으며,
      open() 메서드의 3번째 매개변수를 false로 하면 동기식 요청으로 서버에 연결합니다.
      코드가 서버의 완료를 기다리므로 onreadystatechange에 함수가 필요하지 않습니다.

      서버응답이 준비 될 때까지 JavaScript가 실행을 중지 하므로 동기방식은 권장하지 않습니다.
      최신 개발자 도구는 동기 요청 사용에 대해 경고하고 InvalidAccessError 예외가 발생할 때 이를 throw할 수 있습니다.