2

phonegap (javascript で ajax を使用) から何かを 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

firebugでは、メッセージ201 Created、ユーザーが作成されました(確認できます)が、応答がないため、メッセージalert( 'error')が表示されます...

アドバイスありがとうございます!

4

2 に答える 2

1

201 などの空の応答が予想される場合は、オプションで指定する必要がありdataType: 'text'ます$.ajax。現在起こっていることは、jQuery が応答を JSON として解析しようとしていて、解析する応答がないために失敗していることです。

于 2013-07-12T02:58:00.277 に答える