2017-02-24 113 views
0

我一直在下面的問題上我的球破了上週。當然,我也搜索過並且遇到過描述類似問題的人的帖子,但沒有任何討論的答案和解決方案似乎解決了我的問題。WordPress的管理插件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

Hi Phill,我在我的插件中使用了類,但是因爲我無法使上面的腳本工作,所以我將所有的代碼移動到一個文件中,看看是否有所作爲(不是主插件文件)。我只是刪除了'wp_die()',但不幸的是它沒有區別,仍然返回0. – Joris

回答

0

爲了給在前端側接入(匿名用戶),你需要添加nopriv動作太像:

add_action('wp_ajax_nopriv_woosea_ajax', 'woosea_ajax');