2017-02-24 6 views
0

私は先週、私のボールを下の問題でバストしています。もちろん、私は検索して同様の問題を説明している人の投稿に出くわしましたが、議論された答えと解決策のどれも私の問題を解決するものではありません。Wordpress adminプラグインAJAXコール(ajaxurl)が0を返し続けます

WordpressのプラグインでWordpressの組み込み機能を使用したいのですが、私の関数はコンソールに値0を返しています。 JSはadmin_footer add_actionに 'ロード'され、誰かが 'add-row'ボタンを押したときに実行されます。それはすべて正常に動作しているようです。しかし、コンソールメッセージが返され続ける: 成功したAJAXコール! ///戻り値のデータ:0

だから、私にはwoosea_ajax関数が呼び出されないこともありますか?誰がここで私を助けることができますか?大変感謝しています。

function woosea_ajax() { 
      $data = "hello world"; 
      echo json_encode($data); 
      wp_die(); // just to be safe 
    } 
    add_action('wp_ajax_woosea_ajax', 'woosea_ajax'); 

    function ajax_js_script() { 
    ?> 
      <script type="text/javascript" > 
        jQuery(document).ready(function($) { 
          jQuery(".add-row").click(function(){ 
            jQuery.ajax({ 
              method: "POST", 
              url: ajaxurl, 
              data: { 
                action: 'woosea_ajax' 
              } 
            }) 
            .done(function(data) { 
              console.log('Successful AJAX Call! /// Return Data: ' + data); 
            }) 
            .fail(function(data) { 
              console.log('Failed AJAX Call :(/// Return Data: ' + data); 
            }); 
          }); 
        }); 
      </script> 
    <?php 
    } 
    add_action('admin_footer', 'ajax_js_script'); 
+0

あなたは使用してAPIを呼び出してみましたRESTクライアントとそれが同じものを返すかどうかチェックしますか?たぶんあなたのリクエストではなくあなたのサーバーでしょう。 – Nicolas

+0

あなたはクラスを使用していますか?あなたは 'wp_die();'戻り値が0になっていないことを確認するだけです。 –

+0

こんにちはPhill、私はプラグインでクラスを使用していますが、私は上記のスクリプトを動作させることができなかったので、私はそれがメインプラグインファイルではない)違いがあるかどうかを確認するためにすべてのコードを1つのファイルに移動しました。私は 'wp_die()'を削除しましたが、残念ながらそれは0になります。 – Joris

答えて

0

フロントエンド側のアクセス権を与える(匿名ユーザー)、あなたは次のように、あまりにものnoprivアクションを追加する必要があります:

add_action('wp_ajax_nopriv_woosea_ajax', 'woosea_ajax'); 
関連する問題