/ / jQuery AJAX форму повідомлення з переадресацією на успіх - javascript, jquery, ajax

Форма публікації jQuery AJAX з переадресацією на успіх - javascript, jquery, ajax

У мене є представлення ASP.Net MVC, яке подає дані форми до дії контролера. Я намагаюся використовувати jQuery для публікації форми за допомогою виклику AJAX, як це:

$("#submit").click(function(e) {
e.preventDefault();
$.ajax({
type: "POST",
url: "/controller/action",
data: $("#form").serialize()
});
});

Це чудово працює, дані форми надсилаються доконтролер, як я хочу це зробити. Проблема полягає в тому, що дія контролера повертає перенаправлення і після того, як форма надсилається, веб-переглядач не переспрямовує на місцеположення на адресу, вказану в відповіді перенаправлення. Використовуючи Fiddler, я бачу, що контролер дійсно повертає перенаправлення і видає запит про місцезнаходження, зазначене перенаправленням, але браузер ніколи не переспрямовує, сторінка форми ще відображається після того, як працює обробник кліків.

Я намагався додати обробнику успіху до $.ajax зателефонуйте цим набором window.location. Це працює, однак, це здається менш ідеальнимз кількох причин. По-перше, оскільки я не знаю, як отримати перенаправлення в диспетчері успіху, я мушу жорстко кодувати місце розташування. По-друге, виконуючи перенаправлення в обробнику успішних дій, фактично виникає два запити до місця перенаправлення. "Дивуючись, чи є там кращий спосіб отримати" $.ajax дзвонити до честі перенаправлення, повернутого сервером.

Відповіді:

0 для відповіді № 1

Запит AJAX отримує перенаправлення.

Ви можете отримати ваш запит AJAX, повернути URL-адресу переадресації (а не надіслати 300 Location), а потім перенаправляти на цю URL-адресу в обробнику успіху AJAX.