我正在将我们的 Rails 3 Web 应用程序转换为使用 jQuery 移动,但我遇到了“远程”链接问题。
我有以下链接:
= link_to "Text", foo_url, :method => :put, :remote => true
在服务器上,我正在处理这样的事情:
respond_to do |format|
if foo.save
format.html { redirect_back_or_to blah_url }
format.json { render :json => {:status => "ok"} }
end
end
这曾经非常有效。然而,由于我添加了 jQuery Mobile,控制器代码通过“html”分支而不是“json”分支,并以重定向响应。
我试过添加
:data => { :ajax => "false" }
到链接,但我得到相同的效果。
在 jQuery Mobile 之前,UJS 发送带有以下接受头的请求:
Accept:application/json, text/javascript, */*; q=0.01
在使用 jQuery Mobile 时,我得到了这个标题:
Accept:*/*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript
我相信标头的这种变化是服务器端行为变化的罪魁祸首。我无法通过客户端进行调试以确定谁在做什么。UJS 显然仍在做某事,因为我收到了各种各样的“PUT 请求”,事情得到了适当的路由,等等,但我不确定是什么改变了标题。
谢谢!
丹尼尔