首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wordpress ajax返回零而不是字符串消息

wordpress ajax返回零而不是字符串消息
EN

Stack Overflow用户
提问于 2016-10-04 20:16:02
回答 1查看 186关注 0票数 0

我的ajax调用返回零,即使我在PHP函数的末尾编写了die()。我看了这里的其他问题,没有找到答案,请看我的代码

我使用以下函数进行ajax调用:

代码语言:javascript
复制
$('.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是否正常工作:

代码语言:javascript
复制
public function ajax_pickup_callback() {
    echo 'ajax done';
    die();
}

我通过以下方式注册了该操作:

代码语言:javascript
复制
add_action('wp_ajax_aramex_pickup', array($this, 'ajax_pickup_callback'));

所有这些操作都会返回0,而不是"ajax done“。

有什么需要帮忙的吗?

EN

回答 1

Stack Overflow用户

发布于 2016-10-04 20:28:52

实际上,你的钩子并没有被执行。您必须在ajax请求中传递操作,因为您可以看到here

代码语言:javascript
复制
jQuery.post(
ajaxurl, 
{
    'action': 'add_foobar',
    'data':   'foobarid'
}, 
function(response){
    alert('The server responded: ' + response);
}

);

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39852079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档