Je veux que le succès sur post ajax pour aller à la page d’accueil. Pour une raison quelconque, je continue à me tromper. Une idée de ce que je devrais faire pour résoudre ce problème?
window.APP_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); } });
success: function(response){ window.location.href = response.redirect; }
J’espère que ce qui précède va aider parce que j’ai eu le même problème
Vous pouvez renvoyer le JSON du serveur avec le statut de redirection et l’URL de redirection.
{"redirect":true,"redirect_url":"https://example.com/go/to/somewhere.html"}
Et dans votre gestionnaire 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; } }
Notez que vous devez définir dataType: 'json'
dans ajax config. J’espère que c’est utile. Merci!
Je ne sais pas pourquoi, mais window.location.href
n’a pas fonctionné pour moi. J’ai fini par utiliser window.location.replace
place, ce qui a réellement fonctionné.
$('#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'); } }); });