2

当我从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');
            }
    });
});     

以及我在 Rails 端的 Ruby 代码:

 # 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

在firebug中,我有:消息201 Created,用户已创建(我可以检查它),但我没有响应,所以出现消息alert('error')......

非常感谢您的建议!

4

2 回答 2

1

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

于 2013-07-12T02:58:00.277 回答
0

我刚刚停下来尝试让它与 Firefox 一起工作,并在 X-code 中启动它。有效。

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

于 2013-07-22T06:09:34.733 回答