我想要一个可以检测是否被jquery调用的脚本
如果没有,它会显示页面+布局,如果没有,它只会显示内容(但这无关紧要)
但是,是的,一种检测它是由 jquery load - ajax - 还是直接请求调用的方法。
干杯!
最佳答案
您可能想查看您的服务器正在接收的 HTTP header 。
例如,让我们假设我有这个页面:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.js"></script>
</head>
<body>
<div id="test"></div>
<script type="text/javascript">
$('#test').load('temp.php');
</script>
</body>
</html>
temp.php 脚本仅包含以下内容:
<?php
var_dump($_SERVER);
die;
当load
执行后,“测试”<div>
将包含 $_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 所使用的解决方案 detect Ajax requests .
关于php - 有没有办法(在 PHP 中)检测脚本是否被 jQuery 加载调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1482086/