php专区

 首页 > php专区 > PHP应用 > 常用功能 > PHP判断ajax请求类型(HTTP_X_REQUESTED_WITH) - php高级应

PHP判断ajax请求类型(HTTP_X_REQUESTED_WITH) - php高级应

分享到:
【字体:
导读:
          在jquery中的ajax请求方法有很多,可是$ ajax, $ get, or $ post,并且他可以是json,html,txt等格式,这样我们需要在php根据ajax发送过来的HTTP_X_REQUESTED_WITH是否为ajax请求,然后再根据$_SERVE...

PHP判断ajax请求类型(HTTP_X_REQUESTED_WITH)

在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;   
分享到:
PHPExcel生成和读取Excel文件实例程序 - ...
PHPExcel生成和读取Excel文件实例程序 PHPExcel是一个非常方便生成Excel格式文件的类,官方下载包中带有大量如何生成各种样式excel文件的示例,但没有一个读取Excel文件的完整例子.Xiaoqiang根据网上的资料,整理了一份简单读取Excel文件的例子 在网站的管理后台经常会使用到报表的生成和读取,...
shell 脚本检查某目录下php文件语法 - ph...
shell 脚本检查某目录下php文件语法 利用php的自带检查文件方法 php -l 来使用shell 批量检查某目录下的文件,每次写完脚本都要 php -l 一下,看看有没有发生低级的语法错误,(疏忽过导致事故),写了个简单的shell 脚本批量检查目录下的 php文件语法,代码如下: check_php_syntax.sh    ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……