我在我的Ruby On Rails應用程序中使用JQuery的時候,我嘗試了一下不顯眼的JS。jquery.post():我如何兌現從服務器的重定向?
用戶填寫表單之後,客戶端的jQuery代碼調用:
$.post("/premises", ui.form)
我可以看到POST打服務器,我可以看到服務器發出一個重定向通知http://localhost:3000/users/42完成要顯示的數據。
但瀏覽器頁面沒有改變。這並不令我感到驚訝 - 客戶端JavaScript的全部重點是控制更新的內容 - 我明白了。但是在這種情況下,我想兌現服務器回覆的任何內容。
我試圖根據How to manage a redirect request after a jQuery Ajax call延長通話後():
$.post("/premises",
ui.item,
function(data, textStatus) {
if (data.redirect) {
// data.redirect contains the string URL to redirect to
window.location.href = data.redirect;
} else {
// data.form contains the HTML for the replacement form
$("#myform").replaceWith(data.form);
}
});
...但(其他問題)data.redirect是不確定的。我懷疑真正的答案很簡單,對吧?期待它!
希望服務器可以用有效的JSON響應。 – Quentin 2011-04-13 20:17:05