我希望ajax帖子上的成功转到主页。出于某种原因,我一直做错了。知道我该怎么做才能解决这个问题吗?
window.APP_ROOT_URL = "<%= root_url %>";
的Ajax
$.ajax({ url: '#{addbank_bankaccts_path}',
type: 'POST',
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', '#{form_authenticity_token}')},
dataType: "json",
data: 'some_uri=' + response.data.uri ,
success: function(APP_ROOT_URL) {
window.location.assign(APP_ROOT_URL);
}
});
答案 0 :(得分:18)
success: function(response){
window.location.href = response.redirect;
}
希望以上内容有所帮助,因为我遇到了同样的问题
答案 1 :(得分:8)
您可以从具有重定向状态和重定向URL的服务器返回JSON。
{"redirect":true,"redirect_url":"https://example.com/go/to/somewhere.html"}
在你的jQuery ajax处理程序
中success: function (response) {
// redirect must be defined and must be true
if (response.redirect !== undefined && response.redirect) {
window.location.href = response.redirect_url;
}
}
注意,您必须在ajax配置中设置dataType: 'json'
。希望这是有帮助的。谢谢!
答案 2 :(得分:6)
不确定原因,但window.location.href
对我不起作用。我最终使用window.location.replace
代替,实际上有效。
$('#checkout').click(function (e) {
e.preventDefault();
$.ajax('/post/url', {
type: 'post',
dataType: 'json'
})
.done(function (data) {
if (data.cartCount === 0) {
alert('There are no items in cart to checkout');
}
else {
window.location.replace('/Checkout/AddressAndPayment');
}
});
});