web-dev-qa-db-ja.com

AJAX リクエストステーション200ですが、実際の「レスポンス」はありません

だから基本的に、私はボタンのクリックに反応してこんにちは世界を反映するAJAXスクリプトを実行するPHP呼び出しを書きました(JSによって処理されます)。私はステータス200を取得し、私のブラウザの "inspect element"関数のレスポンスセクションに "Hello world"と表示されますが、ページには表示されません。私のサイトがMySQLデータベースに正しく接続していることを示すために使ったので、 "echo"がうまくいくはずだと私は知っています。そのため、応答セクションには「Connected SuccessfullyHello World」と表示されますが、ページには「Connected Successfully」と表示されるだけです。したがって、何らかの理由で、それは実際にそのHello Worldビットを示していません。

PHP

function test() {
echo "Hello World"; 
die();
}

JS

function yes(){
   jQuery.ajax({
   url: ajaxurl,
   data: {
        'action':'test_function'            
         },
   });
};

答えがばかげて単純である場合は事前に謝罪 - 私はWeb開発に不慣れです

さらなる情報:Xテーマ(WP)を使う

1
SBZ

あなたは正しい方向に進んでいますが、いくつか微調整しなければなりません。あなたのjavascriptは(最良の場合)結果としてオブジェクトを必要とし、もしあなたが結果がPHPから来るのを見たいのならあなたのjsはそれを処理しなければなりません。簡単なテストは、コンソールログを作成することです。それが機能するかどうかを確認するだけです。

このようにコードを編集して、ブラウザのコンソールで確認してください。

// PHP file:
function test() {

$result = array(0 => 'Testresult from Ajax 1', 1 => 'Testresult from Ajax 2');
header('Content-Type: application/json');
die (json_encode($result));
}

その後、あなたのjsで:

// JS file:
function yes() {

var obj = {
    url: ajaxurl,
    type: 'POST',
    data: {
        action: 'test_function'
    },
    dataType: 'JSON',
    cache: false
};

jQuery.ajax(obj)
    .done(function( data ) {
        console.log('result is: ', data);
    });
};

それがうまくいけば、あなたはdone()関数で結果を扱うことができます、例えばものをdomか何かに書いてください。

1
Luckyfella