如何在PHP中判断一个网页请求是ajax请求还是普通请求

如何在PHP中判断一个网页请求是ajax请求还是普通请求?你可以通过传递参数的方法来 实现,例如使用如下网址请求:

 /path/to/pkphp.com/script.php?ajax

在PHP脚本中使用如下方法判断:

if(isset($_GET['ajax'])) {
…这是一个ajax请求,然后…
}
else {
…这不是一个ajax请求,然后…
}

通过传递_GET参数的方法简单实现了网页请求的判断。但是如果需要这样的功能,这个 方法可能就有弊端,功能需求如下:

1.通过ajax请求的网页与普通请求的网页内容是不相同的;

2.通过ajax请求的网页是为了方便用户操作,两种方法请求打开的网页必须的内容是相 同的,只是ajax请求到的网页内容比较简化和使用,去除了网页的大框架模板;

3.这么做的目的是:用户在网页操作时通过ajax实现,而搜索引擎访问网页时(相当于 普通打开网页),得到的内容是一个完整的网页(包含了网页的大框架模板)。

要完成上面的这个功能,就不能使用前面介绍的通过GET参数传递来判断了,如果使用 GET传递来判断的话,用户ajax请求和普通网页请求都会是一样的内容,因为你不可能为一 个链接设置一个带ajax判断参数和不带的URL。那么如何才能实现这个功能呢?必须通过服 务器端PHP判断解决这个问题。也就是今天要说的PHP如何判断ajax请求。这个问题要解决有 一个先决条件,那就是你使用的ajax框架必须是jquery。在jquery框架中,对于通过它的 $.ajax, $.get, or $.post方法请求网页内容时,它会向服务器传递一个 HTTP_X_REQUESTED_WITH的参数,你可以利用如下方法判断某个请求是ajax请求还是普通请 求:

if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower ($_SERVER
['HTTP_X_REQUESTED_WITH']) == ‘xmlhttprequest’)
{
…这是一个ajax请求,然后…
}
else {
…这不是一个ajax请求,然后…
}

利用这个来进行判断操作,可以使网页端的URL保持一致,但是能够对两种不同的请求却 能够得到不同内容的网页。即实现了用户操作优化,又不影响搜索引擎收录,我觉得是一个 很棒的解决方案!

这里有一个另外需要注意的问题,就是如果你的jquery请求是通过iframe打开网页的, 那么HTTP_X_REQUESTED_WITH参数不会被传递,也就是说你没有办法判断请求的类型。

时间: 2024-11-03 19:05:53

如何在PHP中判断一个网页请求是ajax请求还是普通请求的相关文章

如何在photoshop中创建一个网页按钮

上面的截图是我从一个英文网站上截取的,目的是教给大家如何在photoshop中做出类似于上图中的"Buy it"那样的按钮样式.Marko Prljić在<网页设计师应当掌握的5个photoshop高级技巧>一文中教给了我们如何做出左边的"Download Now"的按钮样式,今天我就来说说右边的这个按钮,算是对那篇文章的一个补充,下面我们开始. 第一步 新建一个文档(Ctrl+N),命名为button,大小设置为640×480,其余选项留作默认. 第二

php中如何判断一个网页请求是ajax请求还是普通请求_php技巧

如何在php中判断一个网页请求是ajax请求还是普通请求?你可以通过传递参数的方法来实现,例如使用如下网址请求:/path/to/pkphp.com/script.php?ajax在php脚本中使用如下方法判断: 复制代码 代码如下: if(isset($_GET['ajax'])) { ...这是一个ajax请求,然后... } else { ...这不是一个ajax请求,然后... } 通过传递_GET参数的方法简单实现了网页请求的判断.但是如果需要这样的功能,这个方法可能就有弊端,功能需求

PS网页设计教程XV——如何在Photoshop中创建一个充满活力的作品集的网页设计

作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,"熟读唐诗三百首,不会作诗也会吟". 本系列的教程来源于网上的PS教程,都是国外的,全英文的.本人尝试翻译这些优秀的教程.因为翻译能力有限,翻译的细节上还有待推敲,希望广大网友不吝赐教. 约定: 1.本文的软件是Photoshop CS5版本 2.原教程的截图是英文的,本人在重新制作的基础上,重新截了中文版的图 3.原文中有些操作没有给出参数.本人在反复测试的情况下测定了一些参数,以红色的

PS网页设计教程V——如何在Photoshop中创建一个商业网站布局

作为编码者,美工基础是偏弱的.我们可以参考一些成熟的网页PS教程,提高自身的设计能力.套用一句话,"熟读唐诗三百首,不会作诗也会吟". 本系列的教程来源于网上的PS教程,都是国外的,全英文的.本人尝试翻译这些优秀的教程.因为翻译能力有限,翻译的细节上还有待推敲,希望广大网友不吝赐教. 约定: 1.本文的软件是Photoshop CS5版本 2.原教程的截图是英文的,本人在重新制作的基础上,重新截了中文版的图 3.原文中有些操作没有给出参数.本人在反复测试的情况下测定了一些参数,以红色的

PS网页设计教程IV——如何在Photoshop中创建一个专业博客网站布局

向Talk-Mania网站致敬.一年前,在该网站上看过许多不错的网页设计教程.一年后,再回头想看看有没有什么新的教程的时候,蓦然发现该网站已经打不开了.也许是关闭了,也许是改了网站名了.幸好,去年本人还是下载保存了几个教程,本教程就是其中之一.也希望能看到更多的PS网页设计教程的网站,以及更多优秀的设计.   约定: 1.本文的软件是Photoshop CS5版本 2.原教程的截图是英文的,本人在重新制作的基础上,重新截了中文版的图 3.原文中有些操作没有给出参数.本人在反复测试的情况下测定了一

android开发-如何在if中判断ImageButton所使用的背景

问题描述 如何在if中判断ImageButton所使用的背景 if ( ) { pause(); button.setBackgroundResource(R.drawable.pause_bg); } else { resume(); button.setBackgroundResource(R.drawable.start_bg); } 解决方案 boolean pauseFlag = false; if ( !pauseFlag) { pause(); pauseFlag = true;

sql-急!!!如何在jsp中显示一个图片集,可以左右滑动的

问题描述 急!!!如何在jsp中显示一个图片集,可以左右滑动的 我现在找到一个插件fotorama,但是不知道怎么在jsp中引用,有大神会用吗? 解决方案 图片集是javascript做的网上有现成的你可以搜Javascript图片集插件就可以了:数据库里一般存放的是图片的路径的. 如果回答对你有帮助请采纳 解决方案二: 用一张表单独存这个图片信息,然后再页面遍历,可以用li标签,左右滑动的效果,可以自己写js算,也可以网上搜现成的 解决方案三: 同意楼上意见.... 解决方案四: 真的不要用数

如何在 android 中设置一个用户名和密码文件

问题描述 如何在 android 中设置一个用户名和密码文件 我设置了两个edittext和一个button.我想设置一个特殊的用户名和密码,当我点击按钮时,如果用户名和密码正确,就会打开一个新的intent,否则显示一个toast.我用的下面的代码显示不同的toast,但是没有运行出来,总是显示 ""incorrect"".如何解决这个问题呢? b.setOnClickListener(new OnClickListener() { public void onC

activexobject不兼容-如何在Javascript中判断客户端是否安装插件或OCX是否注册,并且能兼容不同的浏览器

问题描述 如何在Javascript中判断客户端是否安装插件或OCX是否注册,并且能兼容不同的浏览器 我想实现的功能是:用户访问网站时,判断客户端机器上是否有安装指定程序或某个OCX是否注册,如果没有则自动弹出下载包提示安装(下载包安装时会自动安装几个插件和程序,并注册一些OCX),那么只要判断其中某个程序有没有安装或某个OCX有没有注册就行了. 我是试了几种方法都不行: 1.判断注册后的OCX文件是否存在: var fso = new ActiveXObject("Scripting.File