php如何判断是ajax请求 如题,网上是说使用$_SERVER['HTTP_X_REQUEST_WITH'],但我发现似乎不行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在请求头里加上个唯一标识作为ajax发送的http请求的标志,服务器端读发送请求头,当发现有ajax标志则判定为ajax请求. 楼上的就是最好的方法。在http头加标识 AJAX 请求多加一参数,如from_ajax=1 在Symfony中是这样判断的:public function isXmlHttpRequest(){ return ($this->getHttpHeader('X_REQUESTED_WITH') == 'XMLHttpRequest');}我的站点中用到这个函数,经实践是可以用的。不推荐类似hack的方法,如果HTTP本身已经提供了这个功能,就应该用。 似乎iis是没有支持相关的函数,不知道apache或者其他的http服务器有没有相关的 在Ajax传送的数据中增加一个头信息。或者是在PHP建立一个专门接收Ajax访问的路径,所有的Ajax都访问到哪里就可以省去很多判断步骤了。 在AJAX传送数据中增加头信息的话,还是要进行判断。如果专门建立接受ajax访问的路径,我个人觉得又有点重复。 是不是ajax在请求有什么关系?cookie,来源都能模拟。你不会指望这个ajax判断能防泄露吧。不要把危险的数据写到客户端才是正道。 当然有关系,而且很有用。你看下:http://www.rsywx.net/books/01572.html那个用户自定义tag,就又可以用常规的post方式,又可以用ajax的方式更新。这就需要判断了。详细的介绍可以看这里:http://www.rsywx.net/wordpress/2009/02/08/going-for-symfony-%E7%AC%AC45%E5%A4%A9/ 晚上会有X_REQUESTED_WITH是因为ajax是通过jquery来发起的。jquery会自动在请求里面添加一个标识符。其实也跟多get一个参数一样。如果你ajax不是通过jquery来发起的话。就无法实现通过这个来判断是否为ajax请求了。 可以这样来判断:if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') echo 'Request successful';else echo 'This is not an AJAX request'; 我是一个小菜鸟,眼前一片迷茫求指导。 隐藏邮件地址的问题 php批量上传图片 无限级别分类的问题 关于PHP函数的疑惑.... 怎么把表格做成这样的? 我被session干掉了! 计数器,投票系统中要用到的imagecreatefromgif()和imageline()是不是要装GD library 如何让php和sqlserver联系起来 区分文本中的文字与图片 关于iframe导致网址不变的问题,急求解决~ Unknown column 'mission_name' in 'where clause'
{
return ($this->getHttpHeader('X_REQUESTED_WITH') == 'XMLHttpRequest');
}我的站点中用到这个函数,经实践是可以用的。不推荐类似hack的方法,如果HTTP本身已经提供了这个功能,就应该用。
在Ajax传送的数据中增加一个头信息。或者是在PHP建立一个专门接收Ajax访问的路径,所有的Ajax都访问到哪里就可以省去很多判断步骤了。
当然有关系,而且很有用。你看下:http://www.rsywx.net/books/01572.html那个用户自定义tag,就又可以用常规的post方式,又可以用ajax的方式更新。这就需要判断了。详细的介绍可以看这里:http://www.rsywx.net/wordpress/2009/02/08/going-for-symfony-%E7%AC%AC45%E5%A4%A9/
echo 'Request successful';
else
echo 'This is not an AJAX request';