Ajax非同期コミット

1904 ワード

  GET   `/check_username.do`    , `username=?`  ,       `0`(      ) `1`(     )。
##     
   `/check_username.do`     `@ResponseBody`  ,    ,              0 1  。
    `@ResponseBody`   ,           `ViewResolver`         JSP  ,                 !
##     
     `@ResponseBody` ,   Spring            :
	

 
    ,AJAX       ,               ,     JavaScript  。
##     
  ,    XMLHttpRequest  :
	var xhr;
	xhr = new XMLHttpRequest();
XMLHttpRequest   5     :
- onreadystatechange:         
- readyState:    ,        0~4     ,0        ,4       
- status:   ,  404、200
- responseText:      
- responseXML:   XML
        ,    2   :
- open(    ,     ,     )
- send()

    :
	//            
	function checkUsername(username) {
		//   XMLHttpRequest  
		var xhr = new XMLHttpRequest();
		var url = "check_username.do?username="
				+ username;		
		//   onreadystatechange
		xhr.onreadystatechange = function() {
			//         (4)     200 
			if (xhr.readyState == 4
					&& xhr.status == 200) {
				//         "0" "1"
				if (xhr.responseText == "1") {
					//        
					document.getElementById("username_hint").innerHTML= "     ";
				} else {
					//         
					document.getElementById("username_hint").innerHTML = "      ";
				}
			}
		};
		//     
		xhr.open("GET", url, true);
		xhr.send();
	}

プロセスを理解した後、Ajaxの簡潔な方法を使用することができます.
$.ajax({
    "url":"${pageContext.request.contextPath}/user/compare.do",
    "data":"username="+$("#username").val(),
    "type":"post",
    "dataType":"json",
    "success":function(obj){
//成功したらどうする
    },
    "error":function(obj){
//失敗したらどうする
    }
});