php ajax請求判斷

來源:互聯網
上載者:User

標籤:內容   前台   pre   cms   header   學習   檢查   傳值   工作   

2017小端午假期剛過,新的一輪工作又開始了,But,上三天又休息了,激動ing^^

FineCMS學習第二節:M_Controller學習:

今天在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也可以自行設定為別的欄位。

在學習中,發現跨域請求時,這種方法是不能使用的,後續學習後再行補充!

 

===========================================分割線==================================

POST與GET請求判斷:

搜尋了一圈,簡單對此有瞭解,決定現在次標註一下,學習完《圖解HTTP》以後再進行詳細解析

 

===========================================分割線==================================

$_SERVER["REQUEST_TIME"]與time()同樣是返回自從 Unix 紀元(格林威治時間 1970 年 1 月 1 日 00:00:00)到目前時間的秒數

其中$_SERVER["REQUEST_TIME"]從PHP 5.1.0有效

其中$_SERVER["REQUEST_TIME"]記錄了請求的發送時間,而time()是記錄運行至此句代碼時的目前時間


php ajax請求判斷

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.