POST방식으로 요청하는 경우는 Ajax문법 게시물에서 언급하였습니다. 간단한 POST 방식의 요청은 GET방식과 동일하며 다음과 같이  method부분만 POST로 변경합니다.

 

xhr.open("POST", "test.jsp", true);

xhr.send();

 

그러나 HTML폼 태그에 입력한 데이터를 보내려면 setRequestHeader()를 이용하여 HTTP 헤더에 내용을 추가해야 합니다. 또한 사용자가 입력한 폼데이터는 send메소드를 호출할때 보내지도록 작성합니다.

 Method

 설명

 setRequestHeader(header, value)

header : 헤더명

value : 헤더의 값

 

POST방식인 경우 다음과 같이 코드를 수정한다. 

xhr.open("POST", "test.jsp", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send("id="+myform.id.value); 

    - open메소드의 요청방식은 POST로 변경합니다.

   - setRequestHeader메소드를 이용하여 "Content-type"를 

     "application/x-www-form-urlencoded"로 셋팅해야 합니다.

     Content-type은 request에 포함되어야 하는 데이터의 타입을 정의해야 하는 경우 지정하며

     POST방식으로 요청하는 경우 반드시 정의해야 합니다. 

     "application/x-www-form-urlencoded"는 웹브라우저가 폼 태그를 이용해서 입력한 사용자

     의 데이터를 POST방식으로 전송할때 사용하는 표준 MIME type이며  key=value의 유형으로

     인코딩을 합니다.

   - 사용자가 입력한 데이터는 send메소드의 매개변수로 전송합니다.

 

ajaxtest01.jsp를 ajaxtest01_POST.jsp로 저장한 코드를 수정합니다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
 function runAjax(){
  //비동기통신을 할 수 있는 객체를 생성 - XMLHttpRequest
  var xhr = new XMLHttpRequest();
  xhr.onreadystatechange = function(){
      if(xhr.readyState==4 && xhr.status==200){
          document.getElementById("mydiv").innerHTML = xhr.responseText;
      }

 } 
  //POST방식으로 요청하기
  xhr.open("POST", "test.jsp", true);
  xhr.setRequestHeader("Content-type",
    "application/x-www-form-urlencoded");
  xhr.send("id="+myform.id.value);
 }
</script>
</head>
<body>
 <h1>Ajax테스트 하기</h1>
 <form name="myform">
  <input type="text" name="id">
 </form>
 <button type="button"  onclick="runAjax()">Ajax테스트</button>
 <div id="mydiv"></div>
</body>
</html> 

' > Ajax' 카테고리의 다른 글

GET방식으로 Ajax요청하기  (0) 2019.08.12
Ajax문법  (0) 2019.08.12
Ajax의 개요  (0) 2019.08.11

+ Recent posts