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

首頁 > 開發 > PHP > 正文

PHP判斷ajax請求類型(HTTP_X_REQUESTED_WITH)

2024-05-04 21:48:03
字體:
來源:轉載
供稿:網友

在jquery中的ajax請求方法有很多,可是$.ajax, $.get, or $.post,并且他可以是json,html,txt等格式,這樣我們需要在php根據ajax發送過來的HTTP_X_REQUESTED_WITH是否為ajax請求,然后再根據$_SERVER[/'HTTP_ACCEPT/']檢判斷是那格式的請求.

php中就是在header一層判斷是否是ajax請求,對應的根據$_SERVER['HTTP_X_REQUESTED_WITH']判斷,代碼如下:

  1. /** 
  2.   * 當前請求是否ajax請求 
  3.   * 
  4.   * @access public 
  5.   * @return bool 
  6.   */ 
  7.  function isAjax() 
  8.  { 
  9.      return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'XMLHttpRequest'
  10.  } 

一般情況下$_SERVER['HTTP_X_REQUESTED_WITH']默認是XMLHttpRequest.

ajax跨域只能指定jsonp格式的數據,這個是就不是XMLHttpRequest對象了,就算你自定義一個$_SERVER['HTTP_X_REQUESTED_WITH']也是沒有意義的.

解決的辦法:

針對跨域情況的getjson 或者ajax(jsonp)可以使用ACCEPT請求頭部格式來判斷

PHP端對應$_SERVER['HTTP_ACCEPT']

jsonp的請求一般是:text/javascript, application/javascript, */*

json的請求:application/json, text/javascript, */*

一個簡單的判斷跨域條件下的ajax請求,代碼如下:

  1. switch ($_SERVER['HTTP_ACCEPT']){   
  2.     case 'application/json, text/javascript, */*':   
  3.         //  JSON 格式   
  4.         break;   
  5.     case 'text/javascript, application/javascript, */*':   
  6.         // javascript 或 JSONP 格式   
  7.         break;   
  8.     case 'text/html, */*':   
  9.         //  HTML 格式   
  10.         break;   
  11.     case 'application/xml, text/xml, */*':   
  12.         //  XML 格式   
  13.         break;   

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亳州市| 周宁县| 榆社县| 白山市| 新泰市| 英德市| 新营市| 济南市| 闻喜县| 临海市| 连云港市| 靖州| 利川市| 罗田县| 巩义市| 徐州市| 樟树市| 额尔古纳市| 禄丰县| 吉安县| 平谷区| 安顺市| 松江区| 梅州市| 苏尼特右旗| 大邑县| 梅河口市| 桦甸市| 桓台县| 湘阴县| 北碚区| 广西| 汽车| 清苑县| 高雄市| 区。| 绥滨县| 鄂尔多斯市| 永平县| 闻喜县| 鄂温|