반응형
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- docker
- redis
- docker-compose
- ChannelPipeline
- weblogic 10
- spring boot
- grafana
- QueryDSL
- netflix oss
- MySQL
- jmeter
- Selenium
- Netty
- spring boot redis
- spring cloud
- docker compose mysql
- cassandra
- Airflow
- JPA
- Docker Compose
- RabbitMQ
- coalesce
- Spring Open Feign
- WebLogic
- KAFKA
- argo cd
- Hibernate
- mybatis
- vue.js
- Redis Sentinel
Archives
- Today
- Total
IT.FARMER
Ajax new XMLHttpRequest() 본문
반응형
W3C 권고사항 적용
/**
* AjaxUtil
* @param url
* @param methodType : get 혹은 post
* @param asynchronous : 동기(true) 비동기(false)
* @param params
* @param callbackmethod
* @param responseType : XML / TEXT / JSON
* @returns
*
* @example
* new AjaxUtil(url, methodType, asynchronous, params ,callbackmethod , responseType);
*/
var AjaxUtil = function(url, methodType, asynchronous, params ,callbackmethod , responseType){
var actionUrl = url;
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 0){
//UNINITIALIZED :: open()이 아직 호출되지 않은 상태
}else if(xmlHttp.readyState == 1){
//LOADING :: send()가 호출되지 않은 상태 (load중)
}else if(xmlHttp.readyState == 2){
//LOADED::send() 호출 완료하여 header 와 status 사용이 가능한 상태이며, load완료
}else if(xmlHttp.readyState == 3){
//INTERACTIVE :: 일부 data 를 받을 수 있는 상태로 처리중
}else if(xmlHttp.readyState == "4"){
//COMPLETE :: 모든 데이터를 받을 수 있는 상태로 완료
}
if(xmlHttp.status == "200"){
this.handleResponse(xmlHttp, callbackmethod, responseType);
}else if(xmlHttp.status == "404"){
}else if(xmlHttp.status == "500"){
}
}
};
if(methodType.toUpperCase() == "GET"){
xmlHttp.open("get" , actionUrl +"?" + params , asynchronous);
xmlHttp.send(null);
}else if(methodType.toUpperCase() == "POST"){
xmlHttp.open("POST", actionUrl, asynchronous);
//Post 방식에서 다음 헤더 지정
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-length", params.length);
xmlHttp.setRequestHeader("Connection", "close");
xmlHttp.send(params); //parameter 를 전송
}
};
AjaxUtil.prototype = {
handleResponse : function (response, callbackmethod){
var resJSON = eval('(' + response + ')'); //JSON
var resXML = response.responseXML; //XML
var resText = response.responseText; //Text
callbackmethod(response);
},
uninitialized : function (){//readyState 0
},
open : function (){//readyState 1
},
sent : function (){//readyState 2
},
receiving : function (){//readyState 3
},
loaded : function(){//readyState 4
}
};
반응형
'JavaScript > ajax' 카테고리의 다른 글
Ajax XMLHttpRequest caching 방지 (0) | 2011.11.23 |
---|---|
Ext Tree Jsp (0) | 2010.10.11 |
Ajax - Ajax.Request (0) | 2010.08.17 |
Ajax - Ajax.Updater (0) | 2010.06.09 |