일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Tips프로그래밍강좌
- 연산자
- Desktop
- 문법
- 티스토리
- c
- Programming
- CS
- 알고리즘
- Tips강좌
- Kotlin
- 김성엽
- 이지스퍼블리싱
- tipssoft
- c++
- 배열
- doit코틀린프로그래밍
- 프로그래밍
- Win32
- Direct2D
- VS ERROR
- 포인터
- Javascript
- 함수
- c#
- Windows
- Visual Studio
- 백준
- 지식나눔강좌
- 리뷰
Archives
- Yesterday
- Today
- Total
F.R.I.D.A.Y.
ajax class 본문
반응형
ES6에서 사용 가능한 모듈타입의 AJAX를 구현해봤는데 메인 언어가 아닌데다 프로토타입이라 모든 메소드 구현 및 정형화 되지 않음.
export class ajax{
/*
* ajax with vanilla JS
*
*
*/
constructor(param){
if(param == null){
console.error(`ajax: not param`);
return;
}
let reqItemList = [
"url",
"data",
"method",
"success"
];
let errorThrow = false;
for(let i =0; i < reqItemList.length;++i){
if(!(reqItemList[i] in param)){
console.error(`ajax error : ${reqItemList[i]} is requred`);
errorThrow = true;
}
}
if(errorThrow){
new Error();
return;
}
var xhr = new XMLHttpRequest;
xhr.open(param.method, param.url);
xhr.setRequestHeader("Content-type", "application/json; charset=utf-8;");
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
if(xhr.status == 200){
console.log(xhr.response);
param.success(xhr.response);
}else{
if("fail" in param){
param.fail(xhr.response);
}
}
if("always" in param){
param.always(xhr.response);
}
}
}
this.data = param.data;
this.xhr = xhr;
}
send(){
this.xhr.send(JSON.stringify(this.data));
}
}
728x90
반응형
'DEV WEB > HTML CSS JS' 카테고리의 다른 글
[tmlTitle.js]티스토리 접은글 제목 정하기 : 01 (1) | 2019.12.09 |
---|---|
로컬 시간 보여주는 웹 (0) | 2019.08.08 |
masonry 레이아웃 구성하기 (5) | 2019.08.04 |
JS: 문자열에 변수 사용하기(템플릿 리터럴) (0) | 2018.12.19 |
티스토리 글 목록에서 코드 삭제 (0) | 2018.05.11 |
Comments