Я работаю над плагином WordPress. Существует несколько вызовов jQuery Ajax, и все они успешны, за исключением одного. Это случается в onbeforeunload, который я надеюсь, что это не проблема, но вот код:WordPress jQuery Ajax вызов завершается с ошибкой без ответа
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
найдены, что работают отлично.
Так что мои вопросы:
Разве это не законно, чтобы сделать вызов Ajax в функцию OnUnload? Если да, есть ли способ обойти это?
Если это законно, что я делаю неправильно?
Работал отлично! Я знал, что это просто! :) –