/ / PHP não reconhecendo chamada AJAX - php, jquery, ajax

PHP não reconhecendo chamada AJAX - php, jquery, ajax

Eu estou chamando um arquivo via jQuery "s método AJAX se parece com isso:

    $is_ajax = $_REQUEST["is_ajax"];
if(isset($is_ajax) && $is_ajax)
{
echo "its ajax!";
}
else echo "im called, but not via ajax";

e minha chamada AJAX:

jQuery.ajax({
type: "POST",
url: "my-service.php",
data: data,
success: function(response) {
alert(response);
}
});

Mas o alerta sempre mostra a mensagem "não ajax". O que estou fazendo de errado?

Respostas:

3 para resposta № 1

Parece que seu método de detecção de AJAX está errado. Se o seu servidor suporta HTTP_X_REQUESTED_WITH, então é o caminho a seguir:

if(!empty($_SERVER["HTTP_X_REQUESTED_WITH"]) && strtolower($_SERVER["HTTP_X_REQUESTED_WITH"]) == "xmlhttprequest") {
/* special ajax here */
die($content);
}

fonte : Detectar um pedido AJAX


2 para resposta № 2

Necessário adicionar is_ajax: 1 em dados que estão sendo enviados via chamada AJAX.


2 para resposta № 3

tente isto:

jQuery.ajax({
type: "POST",
url: "my-service.php",
data: {is_ajax:1},
success: function(response) {
alert(response);
}
});

1 para resposta № 4

Outro método

Você pode verificar se o pedido é AJAX ou não,

/* 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";
}

1 para resposta № 5

edite sua chamada AJAX e modifique os dados

jQuery.ajax({
type: "POST",
url: "my-service.php",
data: {"is_ajax":"the value"},
success: function(response) {
alert(response);
}
});

1 para resposta № 6

Tente isto:

if(isset($_POST["is_ajax"]))
{
echo "its ajax!";
}
else
{
echo "im called, but not via ajax";
}