My Rails应用程序使用 jquery.post()方法将“可点击”地图标记中的一些数据发送到我的应用程序中的控制器,如下所示。
虽然表单字段正常运行(即发布到控制器并重定向到视图),但可点击的地图标记仅POST到控制器并且不会重定向到指定的视图:
帖子的服务器响应如下所示
//--> THIS IS THE JQUERY 'POST' FROM THE MAP CLICK EVENT. DOES NOT REFRESH THE VIEW
Started POST "/index" for 127.0.0.1 at 2011-11-26 09:22:20 -0500
Processing by SearchController#index as HTML
Parameters: {"search"=>"The Hilton Club New York"}
Rendered text template (0.0ms)
Completed 200 OK in 5ms (Views: 4.2ms | ActiveRecord: 0.0ms)
//--> THIS IS THE RAILS FORM POST. THIS REDIRECTS TO 'index.html.haml'
Started POST "/index" for 127.0.0.1 at 2011-11-26 09:24:50 -0500
Processing by SearchController#index as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"zjnYqbCB2iEob9g25310tYgZRRuF/WPTwplf92Rho0o=", "search"=>"Hilton Hotel, Avenue of the Americas, New York, NY", "commit"=>"GO"}
Rendered text template (0.0ms)
Completed 200 OK in 7ms (Views: 5.9ms | ActiveRecord: 0.0ms)
Javascript看起来像这样
$.post("/index", {search: place.name},"data","html")
Rails控制器代码如下所示
def index
respond_to do |format|
format.html {render :text => "You searched for : #{params[:search]}"}
end
end
有什么想法吗?
答案 0 :(得分:1)
这是因为您只回复format.html
添加一个format.js(或format.json,我忘了哪一个)并编写一些代码来处理这种情况。
答案 1 :(得分:1)
“$ .post()”的第三个参数应该是一个函数,一个在HTTP请求完成时调用的函数。该库将返回的内容传递给该函数。
没有函数,无论服务器返回什么都被忽略;图书馆不知道如何处理它。
即便如此,正如@Esailija在评论中指出的那样,如果您的服务器正在发布重定向,那么它首先不适合ajax。