Моя цель - разрешить пользователям без входа просматривать страницу с помощью кнопки закладок. Когда пользователь не запустится на кнопку закладки, ему должна быть представлена форма входа в модальную форму, отправить свои учетные данные и добавить закладку (так же, как это делает Yelp).jQuery post form and callback
Моя проблема заключается в том, что я не могу сделать регистрационную форму отправкой запроса на создание закладки.
Вот мой код jQuery.
$("form#login-form").submit(function(event) {
event.preventDefault();
$.post('/account/authenticate_xhr', $(this).serialize(), function(data, textStatus, jqXHR) {
console.log("posted authenticate");
if (data['user_id']) {
// log in successful
console.log("logged in!"+data['user_id']);
if (data['next_action']) {
// prepare and post next action
console.log('next action!');
var next_action = data['next_action'];
var controller = next_action['controller'];
var action = next_action['action'];
var data = next_action['data'];
$j.post('/' + controller + '/' + action, { data: data }, function(data, textStatus, jqXHR) {
}, "script");
}
};
}, "script");
console.log('ending');
});
Когда я запускаю его, на консоли появляется ТОЛЬКО «финал». Я не могу выполнить код внутри запроса подлинности authenticate_xhr, пока кажется, что запрос выполнен правильно на задней панели. Но ответ authenticate_xhr показывает мне правый объект JSON ...
Что мне здесь не хватает?
ОБНОВЛЕНИЕ:
- Я последовал charlietfl предложение и заменить «сценарий» с «» JSON для вызова «/ счета/authenticate_xhr» и теперь получить первый пост работает нормально. Теперь мне нужно, чтобы выполнить мой ответ js.erb ...
- Хранится «сценарий» для второго запроса пост и добавленный escape_javascript в представлении js.erb
Вы проверили инструменты firebug или chrome dev, чтобы узнать, выполняется ли запрос? Использует ли 'if (data ['user_id'])' eval значение true? – gideon