2015-06-09 2 views
2

Я делаю jQuery ajax POST, который успешно доставляет правильные данные на сервер. После того, как POST завершен, браузер перенаправляется на страницу post url ..., которую я не хочу. Ни одно из предупреждений не возникает. Данные POST прибыли на сервер просто отлично.Нежелательное перенаправление на адрес POST после успешного ajax

i.e. после того, как ajax выполняется на странице в http://myDomain/myPage.html, как показано ниже, адресная строка браузера показывает http://myDomain:39991/updateEnabled и никаких предупреждений не было.

var enabledAjax = $.ajax({ 
     url: 'http://myDomain:39991/updateEnabled', 
     method: 'POST', 
     data: $('#enabledForm').serialize(), 
     dataType: 'jsonp' 
    }); 
    enabledAjax.done(function (msg) { 
     alert('done') 
    }) 
    enabledStatus.fail(function (jqXHR, textStatus) { 
     alert('textStatus'); 
    }) 

В экспресс, у меня есть router.post('/updateEnabled', urlEncodedParser, updEnab);

В updEnab я все на данный момент является console.log из req.body и res.end()

Я попробовал метод «успеха» в ajax params, но это тоже не работает. Что я делаю неправильно, что вызывает перенаправление на адрес POST?

+0

Используйте 'event.preventDefault()' или 'вернуться ложным;' остановить Перенаправление – Tushar

+0

Как вы вызываете код? Из id '# enabledForm' я думаю, что вы, скорее всего, нажмете на кнопку внутри формы, которая вызывает действие формы. – Jack

ответ

1

привет, когда вы отправляете форму, это нормально, поэтому вам нужно использовать это.

event.preventDefault() 

это остановит остановку нормального представления формы.

+1

Я поддержал этот ответ, потому что привел меня к http://stackoverflow.com/questions/20352799/ajax-form-submit-with-preventdefaultusing, где я выяснил, откуда произошло событие. Он останавливает нежелательные перенаправления, но теперь ajax терпит неудачу, я отправлю новый вопрос с обновленным кодом, который не перенаправляется, но также не работает :-) – RoyHB

+0

ok :-) если этот ответ вам поможет, Это. – Aabid

1

Чтобы остановить перенаправление, вы можете использовать оператор возврата, как это:

enabledAjax.done(function (msg) { 
    return false; 
}) 
Смежные вопросы