другой вариант - использовать iframe и установить для него цель формы.
вы можете попробовать это (он использует jQuery):
function ajax_form($form, on_complete)
{
var iframe;
if (!$form.attr('target'))
{
//create a unique iframe for the form
iframe = $("<iframe></iframe>").attr('name', 'ajax_form_' + Math.floor(Math.random() * 999999)).hide().appendTo($('body'));
$form.attr('target', iframe.attr('name'));
}
if (on_complete)
{
iframe = iframe || $('iframe[name="' + $form.attr('target') + '"]');
iframe.load(function ()
{
//get the server response
var response = iframe.contents().find('body').text();
on_complete(response);
});
}
}
он хорошо работает со всеми браузерам, вам не нужно сериализовать или подготовить данные. одна из сторон заключается в том, что вы не можете контролировать ход.
также, по крайней мере, для хрома, запрос не будет отображаться на вкладке «xhr» инструментов разработчика, но в разделе «doc»