无法使用Ajax接收Rails响应

时间:2013-07-12 02:46:42

标签: javascript ruby-on-rails ruby ajax cordova

当我从phonegap(带有ajax,javascript)的东西发布到我的rails服务器时,帖子成功了,但我的服务器没有响应,所以最后它失败了。我不明白为什么我得不到答复..

例如,这是我的注册脚本(带有ajax的javascript):

$('#sign-up-button').click(function(e) {
        var str = $("#signUpForm").serialize();
        $(".error").remove();
        e.preventDefault();
        $.ajax({url: "http://localhost:3000/api/users.json",
            type: "POST",
            data: str,
            success: function(result, status) {
                alert('success');
                $.mobile.changePage( "welcome.html", { transition: "slide"} );
            },
            error: function(result) {
                alert('error');
            }
    });
});     

我在Ruby on rails端的代码:

 # POST /users
  # POST /users.json
  def create
    @user = User.new(params[:user])

    respond_to do |format|
      if @user.save
        format.html { redirect_to @user, notice: 'User was successfully created.' }
        format.json { render json: @user, status: :created }
      else
        format.html { render action: "new" }
        format.json { render json: @user.errors, status: :unprocessable_entity }
      end
    end
  end

在萤火虫中,我有:消息201已创建,用户已创建(我可以检查),但我没有响应,因此消息提示('错误')出现...

非常感谢您的建议!

2 个答案:

答案 0 :(得分:1)

如果您希望获得空响应(例如201),则需要在dataType: 'text'选项中指定$.ajax。现在发生的事情是jQuery试图将响应解析为JSON,并且由于没有对解析的响应而失败。

答案 1 :(得分:0)

我刚刚停止尝试使用Firefox,并使用X代码启动它。 它奏效了。

我想知道我是否需要在服务器上工作以获取帖子的响应,有人知道X代码是否创建了服务器?