我有一个ajax脚本(jquery),它要求index.php输出生成的变量。此index.php也是生成整个页面并最初填充数据的文件。当ajax请求此文件时,我怎么才能让getNewData()函数。现在它复制整个页面并输出它,所以有两件事。
答案 0 :(得分:2)
function isAjax() {
return env('HTTP_X_REQUESTED_WITH') === "XMLHttpRequest";
}
试试这个......来自CakePHP
答案 1 :(得分:2)
Dooltaz答案的原生PHP实现如下:
function isAjax() {
return $_SERVER['HTTP_X_REQUESTED_WITH'] === "XMLHttpRequest";
}
这当然取决于客户端XHR请求实际发送的X_Requested_With
标头。据我所知,所有主要的Javascript库都包含此标题,但是如果您正在使用XHR实现,则需要添加它。
答案 2 :(得分:1)
理想情况下,您可能不应该在index.php文件中包含所有内容。但是,您可以使用AJAX请求合理地传递GET变量,并在PHP文件中检查它:
if ('requestType' == 'ajax')
{
// return json etc
}
else
{
// print page
}
答案 3 :(得分:1)
如果我是对的,你需要有条件地执行这个方法。因此,使用额外的参数发送异步请求
。$得到('/ index.php的EXEC = 1?);
在index.php中
if($_GET['exec']==1){
//execute
}
else {
//render page - output html, etc
}