Javascript jquery.post():如何接受来自服务器的重定向?

Javascript jquery.post():如何接受来自服务器的重定向?,javascript,jquery,ruby-on-rails,unobtrusive-javascript,Javascript,Jquery,Ruby On Rails,Unobtrusive Javascript,我正在尝试低调的JS,在我的RubyonRails应用程序中使用JQuery 用户填写表单后,客户端JQuery代码调用: $.post("/premises", ui.form) 我可以看到POST点击服务器,我可以看到服务器发出重定向通知,以完成要显示的数据 但是浏览器页面没有改变。这并不让我感到惊讶——客户端javascript的全部目的是控制更新的内容——我明白了。但是在这种情况下,我想尊重服务器的回复 我尝试基于以下内容扩展对post()的调用: 。。。但是(除其他问题外)data.

我正在尝试低调的JS,在我的RubyonRails应用程序中使用JQuery

用户填写表单后,客户端JQuery代码调用:

$.post("/premises", ui.form)
我可以看到POST点击服务器,我可以看到服务器发出重定向通知,以完成要显示的数据

但是浏览器页面没有改变。这并不让我感到惊讶——客户端javascript的全部目的是控制更新的内容——我明白了。但是在这种情况下,我想尊重服务器的回复

我尝试基于以下内容扩展对post()的调用:


。。。但是(除其他问题外)data.redirect未定义。我想真正的答案很简单,对吧?期待它

服务器的意思是,要用JavaScript处理的数据可以在不同的URL上找到,而不是说浏览器应该将新文档加载到顶层框架中。将浏览器发送到它被告知使用JS请求数据的URL不会遵守重定向


如果您想这样做,那么服务器应该使用JavaScript解释为将新值分配给
location

数据的原因的数据(在响应体中)进行响应。重定向可能未定义,因为您没有在服务器端指定它。在您链接到该点的答案中,无论结果如何,服务器总是使用200进行响应,然后它发回的JSON正文决定客户端的反应方式。因此,在服务器端,您希望以
{“redirect”:“/where/to/go”}
响应您引用的帖子使用JSON作为返回值,它正在服务器端构建JSON。这意味着,如果存在重定向,您的数据对象将如下所示

{redirect:'redirecturl.html'}
若它不是重定向的,那个么数据对象将是

{form:html-string-for-form}

现在的工作是在服务器端相应地构造json对象

,希望服务器能够用有效的json进行响应。
{form:html-string-for-form}