Q&A

모듈 작업시 Controller 요청시 ERR_ACT_NOT_FOUND

2025.03.11 16:22
40
0
CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 8.2

현재 corpname 이라는 모듈을 만들어서 별도의 기능을 추가할 목적으로 통합 모듈을 만들었습니다.

 

컨트롤러에서는 

public function procSetHeadManager(){}

 

를 만들고, module.xml에도 

<action name="procSetHeadManager" type="controller" method="POST"  standalone="false"/>

 

와 같이 지정해줬습니다.

 

자바스크립트로 버튼을 눌렀을 때

 

function setHeadManager(document_srl){

    if (!confirm("업무 담당자를 지정하시겠습니까?")) return;

 

    const selectBox = document.getElementById("head_manager");

    const selectedValue = selectBox.value;

 

    exec_json("corpname.procSetHeadManager", { document_srl: document_srl, h_manager: selectedValue }, function (data) {

        location.reload();

    });

}

 

을 하였더니, 잘못된 요청이라며 ERR_ACT_NOT_FOUND가 뜨는데요.

캐시도 삭제해줬는데 어떤게 문제일까요 ㅜ_ㅜ

 

혹시 추가적으로 뭔가 해줘야 할게 있을까요?

:)

댓글 2

  • 18시간 전 #1902841

    해결했습니다.

     

    컨트롤러의 항상 시작은 proc[모듈명]blabla--> procCorpnameSetHeadManager 을 해야하는군요...

  • 14시간 전 #1902859

    document_srl이 있는 경우, 무조건 해당 문서가 소속된 모듈(매우 높은 확률로 board)의 문맥에서 실행됩니다.

    exec_json으로 넘긴 모듈명은 무시되죠.

    이 때 다른 모듈의 act를 호출하려면

    act에서 모듈명을 분리해 내는 아주 오래된 로직에 의존하는 수밖에 없습니다.

    아마 document_srl이 없다면 동작이 달라질 거라고 예상됩니다.

     

    하위호환성 때문에 쉽게 바꿀 수도 없는 부분이라,

    코어에서도 상당수의 모듈들이 document_srl이라는 변수명을 회피하고

    target_srl 등 다른 이름으로 전달하곤 합니다.