国产探花免费观看_亚洲丰满少妇自慰呻吟_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;   

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 明光市| 合山市| 白朗县| 四会市| 福贡县| 新竹市| 布拖县| 上虞市| 乌审旗| 城固县| 普兰店市| 香格里拉县| 张家界市| 沧州市| 五原县| 忻城县| 临城县| 于田县| 湘潭县| 山阳县| 寿阳县| 黄浦区| 金阳县| 江川县| 涿鹿县| 阳高县| 前郭尔| 比如县| 新宁县| 和顺县| 泸水县| 海南省| 吉安市| 湘阴县| 汝阳县| 遂平县| 十堰市| 繁昌县| 仪陇县| 黔南| 绿春县|