2015-03-24 5 views
0

Я использую Heartbeat Wordpress и пытаюсь передать некоторые данные на свой сайт с помощью Ajax. Я могу видеть действие в моем $ _POST, но мои данные недоступны. Ниже .post может отправить запрос в MyZabbix, эта почта содержит мое действие, мое действие затем работает. Однако мне нужен доступ к индексам ['hosting']. Почему нижеприведенный .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

+0

Учитывая тот факт, что он работает ... Было бы очень полезно знать, как это неправильно? ... – ILikeTurtles

+0

Все в порядке, '$ .post (url, {data}, callback)' полностью действует. – adeneo

ответ

0

Я решил использовать функцию when с моим запросом ajax. Проблема, с которой я столкнулся, была: мой запрос ajax не всегда заканчивался до завершения остальной части моего кода. Переместив мой код в функцию, которая выполнялась только ПОСЛЕ того, как мой запрос ajax был успешным, я тогда смог заставить все вести себя так, как ожидалось.

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

группы При функция находится в documentation.

Проделанная функция находится в documentation.