ajax요청 세션이 필요한데 없을경우
php에서 401응답코드 생성
if( IS_AJAX){
http_response_code(401);
$baseUrl = base_url();
header (“Status: 401 Unauthorized”);
header (“url: “.$baseUrl.”sign”);
exit;
}
jquery 에러옵션에서 처리
$.ajax()
error: function(XMLHttpRequest, textStatus, errorThrown) {
// XMLHttpRequest.responseText has your json string
// XMLHttpRequest.status has the 401 status code
//로그인체크
var url = XMLHttpRequest.getResponseHeader(‘url’);
if (XMLHttpRequest.status === 401) {
location.href = url;
}
}
ajax로 요청한 값인지, 일반적인 웹페이지에서 요청한 값인지를 알아내는 방법입니다.
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { // Ajax Request일 경우 echo 'This is an ajax request!'; exit; } // Ajax Request가 아닐 경우 echo 'This is clearly not an ajax request!';
아래와 같이 define을 해서 사용 하셔도 좋습니다.
// Define Ajax Request define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
필요한 곳에 if( IS_AJAX) 이렇게 사용하시면 됩니다.

15 Replies to “PHP – Ajax 요청판별”