WordPress jQuery Ajax调用失败,没有响应

时间:2013-12-20 18:00:18

标签: jquery ajax wordpress

我正在使用WordPress插件。有许多jQuery Ajax调用,除了一个之外所有调用都成功。这恰好是onbeforeunload,我希望不是问题,但这里是代码:

jQuery(window).on('beforeunload', function() {
    var invoiceData = {
        action: 'update_invoice_data',
        invoice_mode: jQuery('#invoice_mode').val()
    };
    jQuery.ajax({
        type:"post", 
        url:ajaxurl,
        data:invoiceData,
        error:function(request, textstatus, errorThrown) {
            console.log('invoice data pass failed');
            console.log(request);
            console.log(textstatus);
            console.log(errorThrown);
        },
        success:function(result, status, xhr) {
            console.log('invoice data passed');
        },
    });
});

(invoiceData变量中传递了更多数据,但即使我删除除action='update_invoice_data'之外的所有内容,它仍然会失败。)

textstatus只是“错误”而errorThrown是一个空字符串。在其他地方的头文件中我有:

add_action('wp_ajax_update_invoice_data', 'update_invoice_data');

然后函数update_invoice_data在其他地方。在同一个标​​题中,其他函数还有其他add_action行可以正常工作,并且找到了同一文件update_invoice_data中的其他函数,它们可以正常工作。

所以我的问题是:

  1. 在onunload函数中执行Ajax调用是不合法的吗?如果是这样,有办法吗?

  2. 如果合法,我做错了什么?

1 个答案:

答案 0 :(得分:0)

  

这恰好是onbeforeunload,我希望不是问题

这正是问题所在。请求在完成之前被中止。使其同步以解决此问题。

async: false