我有一个表单,我想用AJAX提交,使用rails 3和jquery。我面临的问题是rails也以HTML格式响应AJAX请求。经过一点点搜索后,我发现这与正确的Accept标头没有被传递有关。我该如何解决这个问题?
这是控制器代码
respond_to do |format|
format.js { render 'user/create' }
format.html { redirect_to ((params[:feed][:url].nil?)?url_for(:home) : params[:feed][:url]) }
end
它似乎适用于朋友firefox,而且我的chrome也是如此,我的firefox错了吗?
更新:似乎只有当我使用代理服务作为JonDo时才会出现错误,这可能会更改接受标头...如果X-requested-by标头是强制的话,是否有办法强制rails使用js格式本?
由于
答案 0 :(得分:4)
您的控制器代码看起来正确。您确定已在表单中的AJAX URL中添加了.js
后缀吗?这就是响应者如何知道您希望响应的格式。默认格式是HTML,因此省略后缀看起来就像是在响应HTML请求。
答案 1 :(得分:0)
您可能没有正确设置dataType
。请参阅the docs(这是& .post)如果您将dataType
设置为"js"
,那么您将一切顺利!