PHP判斷請求是不是ajax請求

首先看一下框架裏面是怎樣判斷的
ThinkPHP

define('IS_AJAX', ((isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') || !empty($_POST[C('VAR_AJAX_SUBMIT')]) || !empty($_GET[C('VAR_AJAX_SUBMIT')])) ? true : false);
其中C('VAR_AJAX_SUBMIT')默認是'ajax'即經過變量判斷

Laravel
public function ajax()
{
return $this->isXmlHttpRequest();
}
public function isXmlHttpRequest()
{
return 'XMLHttpRequest' == $this->headers->get('X-Requested-With');
}
其中$this->headers->get()是獲取HTTP請求頭部信息

咱們本身的方法
由於變量是能夠定義的因此並不推薦使用變量字段判斷是不是ajax請求
根據ajax 會自動在請求的header裏面加上一個 x-request-with因此咱們能夠經過獲取頭信息判斷
那麼判斷是否來自ajax請求能夠經過方法
public function isAjax(){
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'){
return true;
}else{
return false;
}
}
相關文章
相關標籤/搜索