안녕하세요. _remap질문입니다.
_remap이라는걸 교재때문에 처음알아서 사용해 보고 있는데요
_reamp이 있으면 jquery ajax시에 Syntaxerror()가 나거든요?
보통 jquery Ajax아래 형태를 많이 쓰고 있는데..
$.ajax({
type:'post',
url:'/mypage/isDuplication', //데이터를 요청할 페이지
dataType: 'json', //데이터 유형
error:function(xhr,status,e){ //에러 발생시 처리함수
console.log(e);
},
success: function(jdata){ //성공시 처리 함수, 인수는 위에서 data를 사용한 경우
console.log(jdata);
}
});
* mypage 컨트롤 isDupplication 함수.
function isDupplication()
{
echo json_encode("1");
}
이때 아무리 해봐도 error로 빠지면서 sysntaxerror() 가 나오길래 ..
정말 이상하다 싶었거든요.
1이라는 값이 찍혀야 하는데, 에러가 나니까요 .
그래서 계속 시도한 끝에 원인이 remap이였어요.
remap을 제거하고 , include_once로 view에 헤더와 푸터를 추가해주니까
정상적으로 작동합니다.
개인적으로는 ajax로 /mypage/isDuplication 라는 함수를 호출하여도
기본적으로 header와 fotter가 로딩이되어버리기 때문에, json_econde를 제대로 받아오지 못하는걸까요?
이상하네요..
다른 분들도 이상없이 사용했다면 , 제가 잘못하고 있는걸텐데..
이런경우가 있을수도 있나요?;;
그래서 ajax를 사용하려면 ajax 처리용 컨트롤러를 따로 만들거나
ajax용 메소드는 메소드명_ajax로 만들고 _remap()에서 예외처리합니다.
팝업도 마찬가지구요.
public function _remap($method) { //헤더 include if (!strpos($method, '_ajax')) { $this->load->view('top_v'); } if( method_exists($this, $method) ) { $this->{"{$method}"}(); } //푸터 include if (!strpos($method, '_ajax')) { $this->load->view('bottom_v'); } }