У меня есть обычное приложение Rails (нет SPA), а на одной странице я использую Angular.
В конце я отправляю POST на сервер с данными формы (и он работает), а в качестве последнего шага POST я хотел бы перенаправить на другую страницу.Перенаправление с контроллера Rails после Angular POST
Rails контроллер выглядит так:
def save
data = params[:data]
respond_to do |format|
format.js { render :js => "window.location.href = '/products';" }
end
end
Но ничего не происходит.
Мой Угловая пост прост:
app.service('httpService', ['$http', function($http) {
this.post = function(data) {
$http({
method : 'POST',
url : '/cart/save',
data : { data: data },
headers : {'Content-Type': 'application/json'}
});
};
}]);
Вызов службы так же, как это, не обещает:
this.save = function(ids) {
httpService.post(ids);
};
Любые идеи? Благодарю.
EDIT:
Я попытался также изменить тип пантомимы для 'приложение/JavaScript', но не успех:
app.service('httpService', ['$http', function($http) {
this.post = function(data) {
$http({
method : 'POST',
url : '/cart/save',
data : { data: data },
headers : {'Content-Type': 'application/javascript'}
});
};
}]);
Есть ли конкретная причина, по которой вы не можете позволить отправке формы обращаться непосредственно в Rails? так что вы не выполняете вызов AJAX, но фактический запрос POST на сервер –
Вы имеете в виду сообщение, сделанное form_tag, а не Angular? Потому что я выбираю/снимаю выделение значений в Angular, которые отправляются в POST. Есть ли способ передать угловые значения в «Rails» POST? –
Мне нужно будет увидеть больше кода, чтобы точно понять проблему. В идеале вы должны иметь возможность манипулировать формой, чтобы она все еще работала как стандартная форма HTML, отправляемая в Rails –