2010-04-08 6 views
1

Я использую jQuery и AJAX для загрузки контента из ссылок и форм в div контента. Кроме того, я использую плагин Address для включения кнопки возврата и обновления. На стороне сервера я использую Java и Spring MVC.jQuery Адрес - перенаправление после формы submit

Поскольку я использую адрес jQuery и AJAX, единственной загруженной страницей является «index.html». Все остальное загружается в div контента, и какая страница для загрузки указана в хэше, т.е. «index.html #/users/add.html» загрузит «users/add.html».

Теперь «users/add.html» содержит форму для создания нового пользователя. Когда форма отправляется, и все прошло нормально, контроллер перенаправляется на «users/index.html». Проблема в том, что адрес jQuery не знает о перенаправлении, поэтому URL-адрес останется «index.html #/users/add.html». И это проблема, когда вы обновляете страницу, а затем отправляете обратно в форму, а не на индексную страницу.

Есть ли способ исправить эту проблему?

Спасибо,
Stian

+0

Если вы делаете редирект после отправки формы, какой смысл делать вид представить в AJAX? –

ответ

0

Я понимаю, что мое описание проблемы не было лучшим, приносит извинение за это.

Я переформулировал проблему в другом вопросе, не получил ответов, но сам нашел решение. :)

AJAX - Get response URL after redirect

0

Сначала я инициализировать свою форму так:

$('FORM').submit(function() { 
    shareData = $(this).serializeArray();  
    $.address.value($(this).attr('action')); 
    }) 

после того, как я в моем методе изменить что-то в этом роде:

$.address.change(function(event) { 

    if (event.path != '/' && event.parameters.layout_to_use != undefined) { 

     // if no json, load don't do a post request 
     shareData = _arrayToJson(shareData);; 

     $('#areatoreload') 
      .html('<span style="background-color:red;">loading...</span>') 
      .load('myscript.php', shareData, function() {}); 
    } 
    return false; 
}); 

И я управлять своим аналогичным образом. Надеюсь, это может вам помочь. shareData - не очень хороший способ, но на данный момент я не нахожу что-то еще. этот код не проверен, я просто извлекаю часть моего собственного кода.

0

Взгляните на новый образец формы. Это очень просто, но, вероятно, можно использовать. http://www.asual.com/jquery/address/samples/form/

В вашем случае вы не сможете использовать функцию $ ('form'). Address(), потому что вы захотите изменить адрес после ответа сервера.

Вы можете использовать data.redirect свойства для обнаружения потенциального ответа перенаправляет: How to manage a redirect request after a jQuery Ajax call

Смежные вопросы