묻고답하기
xe에서 json 호출관련 문의 드립니다.
2018.12.23 14:16
xe 1.5.4에서 님께서 정성껏 만들어 주신 myMethodCall.js를 이용해서 json을 정상적으로 사용했는데요.
myMethodCall.js 내용
/**
* @file MyMethodCall.js
* @author 바람꽃 (wndflwr@gmail.com)
* @brief XE에게 ajax 요청을 보낸다. 요청을 보내기 전 반드시 setModule()과 setAct()를 사용해
* 요청을 보낼 서버의 모듈과 act를 지정하도록 한다.
* 필요한 변수들은 addElement로 넣고 CDATA 형식의 데이터는 addCDATAElement()를 사용하도록 하자.
* @returns this
*/
function MyMethodCall(module, act) {
this.module = module;
this.act = act;
this.params = new Array();
this.CDATAparam = new Array();
return this;
}
MyMethodCall.prototype.setModule = function(moduleName) {
this.module = moduleName;
return this;
};
MyMethodCall.prototype.setAct = function(actName) {
this.act = actName;
return this;
};
MyMethodCall.prototype.addElement = function(tagName, value) {
if (tagName != "module" && tagName != "act") {
this.params[tagName] = value;
}
return this;
}
MyMethodCall.prototype.addCDATAElement = function(tagName, value) {
if (tagName != "module" && tagName != "act") {
this.CDATAparam[tagName] = value;
}
return this;
}
MyMethodCall.prototype.callAjax = function(callback_success, callback_error, async, method, timeout) {
// TODO: 먼저 act와 module 항목이 차있는지 확인한다.
if (async == null)
async = true;
else
async = false;
var opt = {};
// method 의 기본 값은 POST
if (!method) {
opt['method'] = 'POST';
} else {
opt['method'] = method;
}
// timeout은 기본값으로 10초
if (!timeout) {
opt['timeout'] = 10000;
} else {
opt['timeout'] = timeout;
}
// string을 만들어서 보낸다.
var url = 'index.php?module=' + this.module + '&act=' + this.act;
var sendString = "<?xml version='1.0' encoding='utf-8'?>";
sendString += "<methodCall>";
sendString += "<params>";
sendString += "<module>";
sendString += this.module;
sendString += "</module>";
sendString += "<act>";
sendString += this.act;
sendString += "</act>";
for (var i in this.params) {
if (i == 'indexOf') continue;
sendString += "<" + i + ">";
sendString += this.params[i];
sendString += "</" + i + ">";
url += '&' + i + "=" + this.params[i];
}
for (var i in this.CDATAparam) {
if (i == 'indexOf') continue;
sendString += "<" + i + "><![CDATA[";
sendString += this.CDATAparam[i];
sendString += "]]></" + i + ">";
}
sendString += "</params>";
sendString += "</methodCall>";
jQuery.ajax({
url: url,
type: opt['method'],
timeout: opt['timeout'],
dataType: 'xml',
data: sendString,
async:async,
contentType: 'text/plain',
success: callback_success,
error: callback_error
});
return this;
}
xe core를 1.11.2로 업그레이드 했더니 호출에 에러가 발생하네요.
에러는 parsererror로 표시가 되는데 혹시 업그레이드 관련 조언을 주실수 있으신지요?
댓글 0
글쓴이 | 제목 | 최종 글 |
---|---|---|
XE | 공지 글 쓰기,삭제 운영방식 변경 공지 [16] | 2019.03.05 by 남기남 |
키미즈 | 게시물이 어떤건 보이고 어떤건 안보입니다 [2] | 2018.12.22 by 차니맘 |
구덱스 | XE 글쓰기가 갑자기 안되네요. [2] | 2018.12.22 by 차니맘 |
가상 | cashbook을쓰고 싶은데요 에러 [1] | 2018.12.21 by sejin7940 |
아름드리나무 | 기본레이아웃 쓰는데요~ [2] | 2018.12.21 by 아름드리나무 |
검은내일 | xe 템플릿 변수를 php로 옮기는 방법이 궁금합니다. [1] | 2018.12.21 by 검은내일 |
기광공 | 모바일 뷰에서 정상 화면이 나오게 하고 싶어요. [1] | 2018.12.21 by DoorWeb |
FFLV | 추천수 0이면 안뜨게 하고 싶은데 어떻게 해야 하나요? [2] | 2018.12.21 by FFLV |
개똥이다 | 모듈에 국가 코드중 중국어 추가 하면 오류가 납니다. | |
쟈니 | 게시글 등록, 댓글 등록 단축키 [2] | 2018.12.20 by 쟈니 |
쟈니 | 익명게시판에서 댓글 작성자 클릭시 댓글에 표시하게할수는 없을까요? | |
돼지꿈 | 지금, 관리자페이지 사이트디자인설정안되는거맞죠? | |
권만주 | 이미지 리사이즈할 때 메타정보 살리는 방법 없을까요? [3] | 2018.12.19 by 권만주 |
psjj**** | 윈도우10에 설치할려고 합니다. | |
callipark | 에러 메세지 해결 방법 문의드립니다. ㅠㅠ | |
NAMSOON | 혹시 이부분 수정가능한가요? [2] | 2018.12.19 by NAMSOON |
HSHAM | 오늘 갑자기 게시글이 하나도 안보입니다. [1] | 2018.12.19 by sejin7940 |
검은내일 | XE를 SSO구현하는데 질문입니다. | |
공주 | 안녕하세요 | |
파워마케팅 | 안녕하세요 | |
쏘쏘쏘 | 게시물 뷰어 익명 처리 방법 |