程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP 判斷是否為 AJAX 請求

PHP 判斷是否為 AJAX 請求

編輯:關於PHP編程

先說前端使用 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 請求時,我們也可以給頭部添加信息,以方便後端同學進行區分,方法如下:

1 var xmlhttp=new XMLHttpRequest(); 
2 xmlhttp.open("GET","test.php",true); 
3 xmlhttp.setRequestHeader("X-Requested-With","XMLHttpRequest"); 
4 xmlhttp.send();

 

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

 

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

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

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

開啟PHP的偽靜態 http://www.cnblogs.com/sosoft/p/3549336.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved