0

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」メッセージが表示されます。私は何を間違っていますか?

4

6 に答える 6

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);
}

source : AJAX リクエストを検出する

于 2012-10-23T10:15:23.487 に答える
2

is_ajax: 1AJAX 呼び出しを介して送信されるデータを追加する必要があります。

于 2012-10-23T10:12:26.910 に答える
2

これを試して :

jQuery.ajax({
            type: 'POST',
            url: 'my-service.php',
            data: {is_ajax:1},
            success: function(response) { 
                alert(response);
             }
        });
于 2012-10-23T10:12:56.207 に答える
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';
}
于 2012-10-23T10:12:08.233 に答える
1

AJAX 呼び出しを編集してデータを変更する

jQuery.ajax({
            type: 'POST',
            url: 'my-service.php',
            data: {"is_ajax":"the value"},
            success: function(response) { 
                alert(response);
             }
        });
于 2012-10-23T10:13:08.817 に答える
1

これを試して :

if(isset($_POST['is_ajax']))
{
    echo 'its ajax!';
}
else 
{
echo 'im called, but not via ajax';
}
于 2012-10-23T10:14:03.250 に答える