CI4

[코드이그나이터] .ajax를 이용 / back단 쿠키생성이 정상적으로 이뤄지지 않은경우 확인사항

으누아빠 2020. 9. 24. 17:09
반응형

가끔 jquery 에서 .ajax형태로 back단으로 데이터를 전달하고 결과값을 받는 형태에서

정상적으로 쿠키값이 구워지지 않는 현상이 발생함

test.html

        $("#login-form").ajaxForm({
            dataType: 'json',
            headers: {
                'X-Requested-With': 'XMLHttpRequest'
            },
        /*... */ 

process.php

$cookie_agent = array(
                'name' => 'auto_login_agent',
                'value' => $agent->getAgentString(),
                'expire' => 86400 * 30
                );
$response->setCookie($cookie_agent);
/*...*/
die(json_encode(array('result' => true, 'msg' => '정상적으로 로그인되었습니다.')));

이럴경우 쿠키가 정상적으로 만들어지지 않는다.

die(json_encode(array('result' => true, 'msg' => '정상적으로 로그인되었습니다.')));

// 대신
echo(json_encode(array('result' => true, 'msg' => '정상적으로 로그인되었습니다.')));

// 형태로 die 대신 echo로 전달해야한다.

ci4 의 response 객체를 보면 setcookie의 역활은 해당 객체에 헤더 정보로써 값을 셋팅을 해주는 역활을 하는것이며

실제로는 output 해주는 함수에서 실제 쿠키를 구워내는 역할을 하는데 die을 이용 프로세스를 끊어버리니 쿠키가 만들어

지지 않는 현상이 발생됨