ThinkPHP 原始碼分析之常量 IS AJAX

2022-05-01 10:24:06 字數 978 閱讀 6113

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);
通過檢測$_server['http_x_requested_with']的值是否是 xmlhttprequest來判斷,或者通過檢測是否存在通過 post 或者 get 傳遞的 c('var_ajax_submit') 的值來判斷,該值是寫在配置檔案 thinkphp/conf/convention.php(line:159) 中:

defined('think_path') or exit

();return

array

(

//....

/*系統變數名稱設定

*///

....

'var_ajax_submit' => 'ajax', //

預設的ajax提交變數

//...

);

控制器(如果不是通過 ajax 提交,則報錯):

if(!is_ajax)
可以測試通過 ajax 傳送請求時,伺服器端 $_server['http_x_requested_with'] 的值(控制器):

在瀏覽器中通過觀察 http 響應:

thinkphp原始碼分析(二) 入口篇

使用者發起的請求都會經過應用的入口檔案,通常是 public index.php 檔案。當然,你也可以更改或者增加新的入口檔案。通常入口檔案的 都比較簡單,乙個普通的入口檔案 如下 應用入口檔案 定義專案路徑 載入框架引導檔案 require dir thinkphp start.php 通常,我們...

thinkphp原始碼分析(二) 入口篇

使用者發起的請求都會經過應用的入口檔案,通常是 public index.php 檔案。當然,你也可以更改或者增加新的入口檔案。通常入口檔案的 都比較簡單,乙個普通的入口檔案 如下 應用入口檔案 定義專案路徑 載入框架引導檔案 require dir thinkphp start.php 通常,我們...

thinkphp原始碼解讀

thinkphp原始碼解讀 thinkphp原始碼的根目錄下是 index.php,是系統預設的 主頁,index.php中首先檢測的是 php執行環境,如果php版本小於 5.3.0則退出執行,定義是否為除錯模式,定義應用目錄,引入入口檔案。thinkphp是整個框架的入口檔案,在thinkphp...