-
2013. 7. 26. 11:36 개발자료/W3C
ajax 를 jQuery 등의 자바스크립트 프레임워크와 비슷한 방식의 함수형태로 불러옵니다
매번 새 개체를 생성해서 중복 실행도 문제 없구요
기본 함수만 사용 하였기 때문에 다른 오래된 브라우저에서는 작동 안할 수 있음
2013-10-29 : 새로 사용할 함수 https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
- 문자열,blob, 데이터타입, 폼 전송을 위한 간소화
2014-04-29 : Content-type -> Content-Type 변경
function ajax(url,param,xhr){if(!xhr)xhr=window;
var x=new xhr.XMLHttpRequest();
if(!param)param={};
if(!param.data)param.data="";
if(!param.type)param.type="GET";
x.onreadystatechange=param.onload;
x.onprogress=param.onprogress;
if(param.onprogress)xr.upload.addEventListener("progress",p.progress,false);
x.open(param.type,url,true);
if(param.type.toUpperCase()=="POST")x.setRequestHeader("Content-Type",param.ContentType?param.ContentType:"application/x-www-form-urlencoded;charset=UTF-8");
x.send(param.data);
}
2013-10-29 : 파이어폭스 send 함수 undefined 인식 못함 처리 추가
매번 새 개체를 생성해서 중복 실행도 문제 없구요
기본 함수만 사용 하였기 때문에 다른 오래된 브라우저에서는 작동 안할 수 있음
2013-10-29 : 새로 사용할 함수 https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
- 문자열,blob, 데이터타입, 폼 전송을 위한 간소화
2014-04-29 : Content-type -> Content-Type 변경
function ajax(url,param,xhr){if(!xhr)xhr=window;
var x=new xhr.XMLHttpRequest();
if(!param)param={};
if(!param.data)param.data="";
if(!param.type)param.type="GET";
x.onreadystatechange=param.onload;
x.onprogress=param.onprogress;
if(param.onprogress)xr.upload.addEventListener("progress",p.progress,false);
x.open(param.type,url,true);
if(param.type.toUpperCase()=="POST")x.setRequestHeader("Content-Type",param.ContentType?param.ContentType:"application/x-www-form-urlencoded;charset=UTF-8");
x.send(param.data);
}
2013-10-29 : 파이어폭스 send 함수 undefined 인식 못함 처리 추가
function
ajax(u,p){
var
xr=
new
XMLHttpRequest(),pr=[];
if
(!p)p={};
if
(p.params){
for
(
var
key
in
p.params){
pr.push(key+
"="
+p.params[key]);
}
pr=pr.join(
"&"
);
}
if
(!pr){
pr=
""
;
}
if
(!p.method)p.method=
"GET"
;
if
(p.method==
"GET"
){
if
(pr)u=[u,pr].join(u.indexOf(
"?"
)>-1?
"&"
:
"?"
);
}
xr.onreadystatechange=p.onload;
xr.open(p.method,u,
true
);
xr.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");
xr.send(p.method==
"POST"
?pr:
""
);
}
ajax(
"url"
,{method:
"POST"
,params:{a:1,b:2},
onload:
function
(){
if
(
this
.readyState==4){
alert(
this
.responseText);
delete
this
;
}
}
});