2015-03-24 132 views
0

我正在使用WordPress的心跳,并试图使用Ajax将一些数据传递到我的网站。我能够在$ _POST中看到该操作,但我的数据不可用。下面的.post能够发送一个请求到MyZabbix,该帖子包含我的动作,然后我的动作起作用。但是,我需要访问索引['托管']。为什么下面的.post在发送操作时不会发送我的数据?Jquery .post不发送数据

 $(document).on('heartbeat-tick', function(e, data) { 
     $.each(data, function(index, value) { 
      $.each(value, function(indexs, values) { 
       var hostids = indexs['hostid']; 
       $.post(MyZabbix.ajaxurl, { 
        action:'zabbix_ajax_submit', 
        data: indexs['hostid'] }, 
        function(api_response) { 
         console.log("Data Saved: " + api_response); 
       }); 
}(jQuery)); 
+0

@Terry如果您要概述使用情况不正确,然后将文档关联起来,则可能会更有帮助。 – schillingt 2015-03-24 21:43:55

+0

考虑到它的工作原理......知道它是怎么回事会是非常有帮助的...... – ILikeTurtles 2015-03-24 21:45:25

+0

很好,'$ .post(url,{data},callback)'是完全有效的。 – adeneo 2015-03-24 21:47:31

回答

0

我决定在我的ajax请求中使用when函数。我遇到的问题是 - 我的ajax请求在执行其余代码之前并不总是完成。通过将我的代码移入一个函数,该函数仅在我的ajax请求成功后执行,然后我才能够使每件事情按预期行事。

var promise = $.ajax({ 
     type: "POST", 
     url: MyZabbix.ajaxurl, 
     async: true, 
     data: { action:'zabbix_ajax_submit', data:value} 
}); 
$.when(promise).done(successFunction); 

when函数位于documentation中。

完成功能位于documentation