国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php 判斷是否為ajax請求

2024-05-04 21:47:40
字體:
供稿:網(wǎng)友

大多數(shù)的 JavaScript 框架如 jquery,Mootools 等,在發(fā)出 Ajax 請求時,都會發(fā)送額外的 HTTP_X_REQUESTED_WITH 頭部信息,頭當他們一個ajax請求,因此你可以在服務器端偵測到 Ajax 請求.

1,通過傳遞_GET參數(shù)的方法簡單實現(xiàn)網(wǎng)頁請求的判斷。

url上這么傳遞:*******.php?ajax

php這么判斷:

  1. if(isset($_GET['ajax'])) { 
  2.  
  3. ...這是一個ajax請求,然后... 
  4.  
  5.  
  6. else { 
  7.  
  8. ...這不是一個ajax請求,然后... 
  9.  

這種實現(xiàn)方法很差勁,相當容易容易容易偽造,判斷和不判斷么有任何區(qū)別,所以又出來一種自認為很科學的處理方式,這種方式確實有一定的學習價值.

Php獲取系統(tǒng)變量中的xmlHttpRequest判讀。

首先你必須使用jquery,Js發(fā)送ajax請求,通過jquery發(fā)送的$.ajax, $.get, or $.post方法請求網(wǎng)頁內(nèi)容時,它會向服務器傳遞一個HTTP_X_REQUESTED_WITH的參數(shù),這個參數(shù)的值是xmlHttpRequest.

Js 代碼如下:

  1. beforeSend : function (XMLHttpRequest) { 
  2.  
  3.     XMLHttpRequest.setRequestHeader("X-Requested-With","XMLHttpRequest"); 
  4.  
  5. }; 
 
參數(shù)名X-Requested-With,參數(shù)值XMLHttpRequest,你可以任意定義,Php取得時候要在參數(shù)名前面加上大寫的http字樣,代碼如下:
  1. if(!emptyempty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest'
  2. {  
  3. //If AJAX Request Then  
  4. }else{  
  5. //something else  

1,如果

你的jquery請求是通過iframe打開網(wǎng)頁的,那么HTTP_X_REQUESTED_WITH參數(shù)不會被傳遞,也就是說你沒有辦法判斷請求的類型。

2,IE5,IE6老版本的瀏覽器總中$.ajax,$.get, or $.post方法不會自動發(fā)送HTTP_X_REQUESTED_WITH的參數(shù)到頭部信息,因為php中也是無法獲取參數(shù)進行判斷,除非你自己構造XMLHttpRequest對象出來,然后再發(fā)送給php腳本,相當于用最原始的js實現(xiàn)ajax功能,這樣做,jquery框架本來封裝好的ajax就失去意義啦.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 通许县| 长垣县| 太谷县| 武强县| 霞浦县| 定安县| 繁峙县| 富源县| 玉树县| 牟定县| 沅江市| 古田县| 屯昌县| 精河县| 永泰县| 班玛县| 太和县| 茶陵县| 乌兰县| 内丘县| 揭西县| 托里县| 聊城市| 枣庄市| 松原市| 本溪市| 玉门市| 海阳市| 九龙城区| 曲阜市| 卢氏县| 沙坪坝区| 石景山区| 楚雄市| 威远县| 彭山县| 普兰县| 恩平市| 加查县| 汕头市| 呼图壁县|