在PHP中如何判断AJAX请求

2016-02-19 20:03 2 1 收藏

每个人都希望每天都是开心的,不要因为一些琐事扰乱了心情还,闲暇的时间怎么打发,关注图老师可以让你学习更多的好东西,下面为大家推荐在PHP中如何判断AJAX请求,赶紧看过来吧!

【 tulaoshi.com - Web开发 】

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

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

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

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

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

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

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

  要完成上面的这个功能,就不能使用前面介绍的通过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参数不会被传递,也就是说你没有办法判断请求的类型。

来源:https://www.tulaoshi.com/n/20160219/1622625.html

延伸阅读
标签: Web开发
我们已看到AJAX可被用来创建更多交互性的应用程序。 AJAXSuggest实例 在下面的AJAX例子中,我们会演示当用户向一个标准的HTML表单中输入数据时网页如何与web服务器进行通信。 在下面的文本框中输入名字: FirstName: Suggestions: 例子解释-HTML表单 表单的HTML代码: ...
标签: Web开发
AJAXSuggest源代码的实例 下面的源代码属于上一节的AJAX实例。 您可以拷贝粘贴这些代码,然后亲自测试一下。 AJAXHTML页面 这是HTML页面。它包含了一个简单的HTML表单,以及一个指向JavaScript的链接。 html head scriptsrc="clienthint.js"/script /head bo...
标签: Web开发
我们已看到 AJAX 可被用来创建更多交互性的应用程序。 AJAX Suggest实例 在下面的 AJAX 例子中,我们会演示当用户向一个标准的 HTML 表单中输入数据时网页如何与 web 服务器进行通信。 在下面的文本框中输入名字: Suggestions: 例子解释 - HTML表单 表单的 HTML 代码: form First Name:input type="text" id="txt1&qu...
标签: Web开发
AJAX Suggest 源代码的实例 下面的源代码属于上一节的 AJAX 实例。 您可以拷贝粘贴这些代码,然后亲自测试一下。 AJAX HTML 页面 这是 HTML 页面。它包含了一个简单的 HTML 表单,以及一个指向 JavaScript 的链接。 htmlheadscript src="clienthint.js"/script /headbodyform First Name:input type="text" id="...
标签: Web开发
目的是实现了,个人觉得在执行速度上不是很理想,希望大家帮忙改进,谢谢! 大家知道IE只能一次发送一个Ajax请求,你是否尝试过在一个页面上用Ajax请求多次,虽然可以实现我们发现代码很乱 我们来实现一个在页面呈现缓存的例子吧! //获取Dom function $(id) { return document.getElementById(id); } 思路:我们把要加载的缓存放在一个集合中,...

经验教程

863

收藏

18
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部