Адрес jQuery - перенаправление после отправки формы - PullRequest
1 голос
/ 08 апреля 2010

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

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

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

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

Спасибо,
Stian

Ответы [ 3 ]

0 голосов
/ 09 апреля 2010

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

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

Вы можете использовать свойство data.redirect для обнаружения потенциальных перенаправлений ответа: Как управлять запросом на перенаправление после вызова jQuery Ajax

0 голосов
/ 20 апреля 2010

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

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

AJAX - получить URL-адрес ответа после перенаправления

0 голосов
/ 09 апреля 2010

Сначала я запускаю свою форму следующим образом:

  $('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 не очень хороший способ, но я пока не нахожу что-то еще.этот код не проверен, я просто извлекаю часть своего кода.

...