国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 济南市| 揭东县| 临夏市| 佛教| 东方市| 陈巴尔虎旗| 汤原县| 信阳市| 鄂伦春自治旗| 新余市| 山西省| 广丰县| 启东市| 邵武市| 五台县| 行唐县| 海城市| 大名县| 嘉鱼县| 庆元县| 阿图什市| 习水县| 来安县| 金平| 安化县| 涞水县| 洛阳市| 峨眉山市| 班戈县| 孝义市| 灵宝市| 海城市| 叶城县| 大兴区| 沾益县| 崇左市| 乐清市| 大田县| 临海市| 五大连池市| 北流市|