我通过jQuery的AJAX方法调用文件,如下所示:
$is_ajax = $_REQUEST['is_ajax'];
if(isset($is_ajax) && $is_ajax)
{
echo 'its ajax!';
}
else echo 'im called, but not via ajax';
和我的AJAX电话:
jQuery.ajax({
type: 'POST',
url: 'my-service.php',
data: data,
success: function(response) {
alert(response);
}
});
但警告始终显示'not ajax'消息。我做错了什么?
答案 0 :(得分:3)
似乎你检测AJAX的方法是错误的。如果您的服务器支持HTTP_X_REQUESTED_WITH,那么就可以了:
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
/* special ajax here */
die($content);
}
答案 1 :(得分:2)
需要在通过AJAX调用发送的数据中添加is_ajax: 1
。
答案 2 :(得分:2)
试试这个:
jQuery.ajax({
type: 'POST',
url: 'my-service.php',
data: {is_ajax:1},
success: function(response) {
alert(response);
}
});
答案 3 :(得分:1)
另一种方法
您可以像这样简单地检查请求是否是AJAX,
/* AJAX check */
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
echo 'its ajax!';
}else{
echo 'im called, but not via ajax';
}
答案 4 :(得分:1)
编辑您的AJAX调用并修改数据
jQuery.ajax({
type: 'POST',
url: 'my-service.php',
data: {"is_ajax":"the value"},
success: function(response) {
alert(response);
}
});
答案 5 :(得分:1)
试试这个:
if(isset($_POST['is_ajax']))
{
echo 'its ajax!';
}
else
{
echo 'im called, but not via ajax';
}