是否有一种方法(在PHP中)检测脚本是否被jQuery加载调用?

我想要一个可以检测jquery是否调用的脚本

如果没有,它会显示页面+布局,如果没有,它只是内容(但这是无关紧要的)

但是,是的,一种检测它是否被jquery load-ajax调用或直接请求的方法。

干杯!

你能不用负载发送GET参数?

即:

jquery=1 //(for load) jquery=2 //(for the 'low-level' ajax call) 

正常脚本加载的任何其他值

然后让PHP脚本处理确定下一步该做什么。 通过读取$_GET['jquery']

您可能想要查看服务器正在接收的HTTP标头。

例如,让我们考虑一下这个页面:

       

而temp.php脚本只包含这个:

  

执行load ,“test”

将包含$_SERVER的转储; 它包括这个,除其他外:

 'HTTP_X_REQUESTED_WITH' => string 'XMLHttpRequest' (length=14) 

XMLHttpRequest是用于发出Ajax请求的对象。

这意味着您应该能够检测请求是否是通过AJax查询进行的,具体如下:

 if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') { echo "Ajax"; } else { echo "Not Ajax"; } 

有了这个,您可以检测您的页面是“正常”调用,还是通过Ajax请求,并决定是否必须包含布局。

顺便说一句:这正是Zend Framework用来检测Ajax请求的解决方案。

如果我没记错的话,jQuery的AJAX函数会发送一个X-Requested-With标头(值为XMLHttpRequest )。

如果你使用的是Zend Framework,你可以使用

 // in one of your controllers if ($this->getRequest()->isXmlHttpRequest()) { // ... } 

http://framework.zend.com/manual/en/zend.controller.request.html