PHP – Ajax 요청판별

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) 이렇게 사용하시면 됩니다.

http://gyuha.tistory.com/299

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

Leave a Reply

Your email address will not be published.