首頁 > 後端開發 > PHP問題 > php怎麼判斷是不是ajax請求

php怎麼判斷是不是ajax請求

藏色散人
發布: 2023-03-12 08:58:01
原創
3770 人瀏覽過

php判斷是不是ajax請求的方法:1、透過「if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]){...}」方法判斷;2、透過給頭部加入xmlhttp資訊進行判斷。

php怎麼判斷是不是ajax請求

本文操作環境:Windows7系統、PHP7.1版本、Dell G3電腦

php怎麼判斷是不是ajax請求?

PHP 判斷是否為AJAX 請求

#先說前端使用jQuery 時怎麼區分:

  jQuery 發出ajax 請求時,會在請求頭部加入一個名為X-Requested-With 的訊息,訊息內容為:XMLHttpRequest

  在後端可以使用$_SERVER["HTTP_X_REQUESTED_WITH"] 來取得。(注意:中劃線換成了下劃線劃線,不區分大小寫)

  由此,我們可以這樣來判斷是否為ajax 請求:

// php 判断是否为 ajax 请求  http://www.cnblogs.com/sosoft/
if(isset($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"])=="xmlhttprequest"){ 
    // ajax 请求的处理方式 
}else{ 
    // 正常请求的处理方式 
};
登入後複製

 

在使用原生JavaScript 發出ajax 請求時,我們也可以給頭部添加信息,以方便後端同學進行區分,方法如下:

 var xmlhttp=new XMLHttpRequest(); 
 xmlhttp.open("GET","test.php",true); 
 xmlhttp.setRequestHeader("X-Requested-With","XMLHttpRequest"); 
 xmlhttp.send();
登入後複製

 

這裡我們也一樣是給頭部添加X_REQUESTED_WITH 信息,與jQuery 的一致。當然你也可以更改為別的資訊來進行區分。

 

  OK,進行區分之後有什麼好處呢?說兩個例子:

  1.當js 檔案未載入完時,用戶點擊了某個按鈕或鏈接,本應是ajax 請求的成了正常請求,後端根據判斷,不輸出ajax 時的json 數據,而是跳轉,這也是優雅降級的形式。

  2. [A 頁面]使用ajax 方式進行登錄,[B 頁面]使用正常方式登錄,如果不區分,後端需要寫兩次幾乎完全相同的代碼,而有了區分,可以把重複的程式碼消掉。

開啟PHP的偽靜態。

#推薦:《PHP影片教學

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

相關標籤:
php
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板