即使我在PHP函数的末尾写了die()
,我的ajax调用也返回零。
我在这里查看了其他问题并且没弄清楚,请看看我的代码
我使用此函数进行ajax调用:
$('.aramex-pickup').click(function() {
var button = $(this);
var pickupDateDate = $('.pickup_date').val();
var pickupDateHour = $('.pickup_date_hour').val();
var pickupDateMinute = $('.pickup_date_minute').val();
var pickupDate = pickupDateDate + ' ' + pickupDateHour + ':' + pickupDateMinute;
var orderId = button.data('id');
if (pickupDate) {
//show loader img
button.next('.ajax-loader').show();
var data = {
'action': 'aramex_pickup',
'order_id': orderId,
'pickup_date': encodeURIComponent(pickupDate)
};
$.ajax({
url: ajaxurl,
data: data,
type: 'POST',
success: function(msg) {
console.log(msg);
if (msg === 'done') {
location.reload(true);
} else {
var messages = $.parseJSON(msg);
var ul = $("<ul>");
$.each(messages, function(key, value) {
ul.append("<li>" + value + "</li>");
});
$('.pickup_errors').html(ul);
}
}, complete: function() {
//hide loader img
$('.ajax-loader').hide();
}
});
} else {
alert("Add pickup date");
}
return false;
});
在后端我写了这个函数只是为了测试ajax工作正常:
public function ajax_pickup_callback() {
echo 'ajax done';
die();
}
我通过以下方式注册了该行动:
add_action('wp_ajax_aramex_pickup', array($this, 'ajax_pickup_callback'));
所有这些都返回0而不是&#34; ajax完成&#34;。
请帮忙吗?
答案 0 :(得分:-1)
实际上你的钩子没有被执行。您必须在ajax请求中传递操作,因为您可以看到here。
jQuery.post(
ajaxurl,
{
'action': 'add_foobar',
'data': 'foobarid'
},
function(response){
alert('The server responded: ' + response);
}
);