반응형
가끔 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을 이용 프로세스를 끊어버리니 쿠키가 만들어
지지 않는 현상이 발생됨
'CI4' 카테고리의 다른 글
[코드이그나이터] javascript에서 ajax 통신할때 csrf 값 생성하기 (0) | 2020.11.13 |
---|---|
[코드이그나이터] $this->response->setJSON() 이용시 debug mode 에 의해 깨질경우 (0) | 2020.10.16 |
[코드이그나이터] could not find package codeigniter4/appstarter with stability stable. (0) | 2020.09.21 |
[코드이그나이터] form_open() 헬퍼 함수 사용시 경로에 추가된 index.php 제거하기 (0) | 2020.09.11 |
[코드이그나이터] CSRF 필터 활성화 (0) | 2020.09.11 |