首頁  >  文章  >  後端開發  >  php如何判斷是ajax

php如何判斷是ajax

王林
王林原創
2019-09-21 11:49:413089瀏覽

php如何判斷是ajax

今天在M_Controller內遇到如下程式碼,故對如何判斷ajax請求,post請求及REQUEST_TIME於time()函數差別做了一下學習。

define('IS_AJAX', $this->input->is_ajax_request());
define('IS_POST', $_SERVER['REQUEST_METHOD'] == 'POST' && count($_POST) ? TRUE : FALSE);
define('SYS_TIME', $_SERVER['REQUEST_TIME'] ? $_SERVER['REQUEST_TIME'] : time());

is_ajax_request()方法是CI內判斷是否ajax請求的一種方法,官方文件對於它的解釋是:檢查伺服器頭中是否含有HTTP_X_REQUESTED_WITH ,如果有回傳TRUE,否則回傳FALSE。

當然,這樣的判斷是不夠完善的,涉及到判斷的原理如下:

#當我們透過jquery發送ajax請求時,會在請求頭部加上一個名為X-Requested-With 的訊息,訊息預設內容為:XMLHttpRequest,這是CI框架對於ajax請求判斷的依據。

但是,當我們用原生js時如何進行判斷呢?

xmlHttpRequest.setRequestHeader("request_type","ajax");

根據XMLHttpRequest對象,手動進行頭部設置,如上設置完成後,我們可以再PHP邏輯代碼中如下獲取:

$_SERVER['HTTP_REQUEST_TYPE']

很明顯,我們在頭部設置的request_type在背景取得時,加上HTTP_的前置字串,即可取得到前台發送的Header訊息,即透過呼叫$_SERVER['HTTP_REQUEST_TYPE']得到前台傳值:ajax,當然request_type也可以自行設定為別的欄位。

以上內容僅供參考!

推薦教學:PHP影片教學

#

以上是php如何判斷是ajax的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn