2016-08-24 43 views
0

我在Wordpress前端頁面的JS中實現了AJAX調用。 AJAX調用成功(調用了sucess(),並在complete()中看到200響應,但AJAX調用未出現在我的網絡面板中。我的理解是,基於過去使用AJAX調用,此調用應顯示在Chrome的網絡面板中以供進一步檢查。我正在查看網絡面板的XHR子部分,並且看到沒有打電話。不過,我也在網絡面板的「全部」部分查看,以驗證該呼叫從未在網絡面板中顯示。我很好奇爲什麼會這樣。Ajax調用成功,但未出現在網絡面板中

這裏是我的JS:

jQuery(document).ready(function() { 

     jQuery.ajax({ 
      dataType: 'json', 
      method: 'POST', 
      url: "<?php echo admin_url('admin-ajax.php'); ?>", 
      data: {action: 'myaction'} 
     }) 
     .success(function(data) { 
      console.log("success " + data); 
     }) 
     .fail(function() { 
      console.log("error"); 
     }) 
     .complete(function(xhr, textStatus) { 
      console.log(xhr.status); 
     }) 
     .always(function() { 
      console.log("complete"); 
     }); 

    } 

我的控制檯日誌輸出如下:

success 0 
complete 
200 

這顯然打成功,得到一個200響應,而不是失敗。這不應該全部在網絡面板中顯示出來嗎?

+1

嘗試在Firefox上的螢火蟲。 –

+0

你是對的,它在Firebug中表現良好。任何想法,爲什麼這將在Firebug而不是鉻?我從來沒有遇到過Chrome未顯示網絡電話的問題。 – carbide20

回答

0

我不確定這是否相關,但前段時間我有同樣的問題。請求只是返回零,這通常發生在您嘗試調用未註冊的WP-ajax動作時。我之前設法做了WP-ajax調用,所以我不知道爲什麼這次它不起作用。我認爲這是因爲ajax調用數據類型是json。我偶然發現了一個例子,其中數據參數是一個FORMDATA對象:

var data = new FormData(); 
data.append('action', 'your_action'); 
data.append('somedata', somedata); 

$.ajax({ 
    method: "POST", 
    url: "<?php echo esc_url(admin_url('admin-ajax.php')); ?>", 
    processData: false, 
    contentType: false, 
    cache: false, 
    data: data, 
    dataType: "json", 
    success: function(response, textStatus, jqXHR) { 
     if (response.status === "ok") { 
      // Success 
     } else { 
      console.log('Status: ' + response.status); 
     } 
    }, 
    error: function(jqXHR, textStatus, errorThrown) { 
     console.log("Error: " + textStatus); 
     console.log(errorThrown); 
    }, 
    complete: function(jqXHR, textStatus, errorThrown) { 

    } 
}); 

如果有人有更好的瞭解請你解釋爲什麼這個工程。

我希望這可以幫助你。

0

我有一個類似的問題,而不是點擊清楚的網絡領域,我點擊停止記錄網絡日誌。所以經過一個小時的麻煩,我通過再次啓動記錄網絡領域解決了問題。

希望這可以幫助有人面臨同樣的問題。

相關問題