function doFnc(module, action, target_srl) {
    var params = {'target_srl':target_srl,'cur_mid':current_mid};
    jQuery.exec_json(module+'.'+action, params, completeFnc);
}

 

이런힉으로 모듈의 act를 실행해서 결과를 리턴 받는 형식을 보고 따라해서 해봤는데요.

 

 

혹시 이런 정해진 act 외 쿼리파일로 db에서 조회하는 것 같은 것도 가능한가요?

 

$result = executeQuery('addons.addon_name.QueryID',$obj)

 

위와 같은 것을 jQuery.exec_json 으로 구현해서 결과를 가져오는 것을 똑같이 할 수 있는 건지 궁금합니다.

 

 

그리고  jQuery.exec_json 의 설명 같은 것을 열람해 볼 수 있는 곳이 있을까요?

 

  • profile

    아무런 인증 절차가 없는 exec_json에서 임의의 쿼리를 실행할 수 있다면 어마어마한 보안취약점이겠지요?

    모듈의 module.xml에 등록된 액션만 호출할 수 있습니다.

    액션명과 쿼리명이 동일한 경우에도 실제로 호출되는 것은 액션이지 쿼리가 아닙니다.

  • profile profile
    가능하지 않은 거군요. 클릭해서 db값을 가져와서 확인해 보는 것이 필요할때 응용해 보려고 했는데 이방법은 안되는 거군요.
  • profile

    exec_json의 기본적인 형태는 아래와 같습니다.

    라이믹스 및 XE 최신버전 기준으로 "jQuery"는 필요하지 않습니다.
     

    exec_json('모듈명.액션명', { 변수1: 값1, 변수2: 값2 ... }, function(data) {

        // 서버단에서 $this->add(변수명, 값); 한 데이터를 여기서 data.변수명 으로 사용 가능

    });

     

    세 번째 파라미터로 익명함수(이름을 따로 부여하지 않은 일회용 함수)가 통째로 들어간다는 점을 기억하면

    일반적인 함수에 파라미터 3개를 넘기는 것과 다를 바가 없습니다.

    굳이 일반 함수를 선언해서 넣는 분들이 많은데, 그럴 필요 없습니다. 딱 한 번 호출하고 말 테니까요.

    위의 코드에서 파란색으로 표시한 부분 전체가 3번째 파라미터에 해당합니다.

    data라는 변수명도 함수 내에서만 사용하는 것이므로 ret_val 등으로 바꿔 사용해도 무방합니다.

     

    아, 그리고 게시판 잘못 선택하신 것 같습니다. ㅋㅋㅋ 운영진이 옮겨주시겠죠 뭐~

  • profile profile
    예전에 한번 알려주셨는데 이제 다시 보니까 사용하는 형식은 확실히 이해가 되네요. 설명을 해주신 대로 제가 다른 형식으로 사용한 것과 대조를 해보니 최종 요청하는 구문은 똑같은게 보이네요.
    세번째 인자에 함수가 모듈함수에서 결과로 반환해주는 값($this->add(변수명, 값);) 이 들어오는 곳으로 규칙으로 짜여진 건가요?
  • profile profile
    네, 이름과 관계없이 data든 뭐든 함수 내에서 사용할 변수를 선언하시면
    모듈에서 add한 값이 들어옵니다.