2016-08-24 86 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

我有一个类似的问题,而不是点击清楚的网络领域,我点击停止记录网络日志。所以经过一个小时的麻烦,我通过再次启动记录网络领域解决了问题。

希望这可以帮助有人面临同样的问题。

相关问题