使用Rails 3和jQuery的AJAX请求正在以HTML格式处理。

时间:2010-08-11 18:37:14

标签: ruby-on-rails ajax jquery

我有一个表单,我想用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格式本?

由于

2 个答案:

答案 0 :(得分:4)

您的控制器代码看起来正确。您确定已在表单中的AJAX URL中添加了.js后缀吗?这就是响应者如何知道您希望响应的格式。默认格式是HTML,因此省略后缀看起来就像是在响应HTML请求。

答案 1 :(得分:0)

您可能没有正确设置dataType。请参阅the docs(这是& .post)如果您将dataType设置为"js",那么您将一切顺利!