【发布时间】:2011-04-13 20:04:14
【问题描述】:
我正在尝试不显眼的 JS,在我的 Ruby On Rails 应用程序中使用 JQuery。
用户填写表单后,客户端JQuery代码调用:
$.post("/premises", ui.form)
我可以看到 POST 命中服务器,并且我可以看到服务器向 http://localhost:3000/users/42 发出重定向通知,并完成了要显示的数据。
但是浏览器页面没有改变。这并不让我感到惊讶——客户端javascript的全部意义在于控制更新的内容——我明白了。但在这种情况下,我想尊重服务器回复的任何内容。
我尝试根据How to manage a redirect request after a jQuery Ajax call 扩展对 post() 的调用:
$.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 未定义。我怀疑真正的答案很简单,对吧?期待!
【问题讨论】:
标签: javascript jquery ruby-on-rails unobtrusive-javascript