2

私は Backbone.js を使って作業し、次の環境をセットアップすることを学んでいます:

/* define the model */
var Login = Backbone.Model.extend({
    url:"api/index.php/login/"
});

/* the following code is contained in a view method */

var login = new Login({
    email: $("#email").val(),
    pass: $("#pass").val()
});

var result = Backbone.sync('create',login);
alert(JSON.stringify(result));

サーバー上の「index.php」では、正しいメソッドが呼び出され、データが正しく利用可能になります。

アラートは次のように出力します。{"readyState":1}

ここで私の質問: サーバー (index.php) は、クライアントに応答するために何を返す/出力する必要がありますか? データをクライアントに転送して、たとえば表示したいと思います。

4

1 に答える 1

2

Backbone.sync()非同期操作です。あなたはできません

var result = Backbone.sync('create', login);

有用なものを何も返さsync()ないためです。要求をサーバーに送信し、サーバーの応答が到着するずっと前に、すぐに返します。

optionsそこでパラメーターと配置successおよびerrorコールバック関数を使用します。

Backbone.sync('create', login, {
  success: function () {
    // whatever you want to do when login succeeds
  },
  error: function () {
    // display an error message
  }
});

たとえば、サーバーが応答を返した場合、errorコールバックが実行されます。サーバーが戻ったとき401 Unauthorizedのコールバック。success200 OK

これらのコールバックの使用方法と使用できるその他のオプションに関するドキュメントについては、ドキュメントを参照してくださいjQuery.ajax()

于 2012-05-13T13:56:54.363 に答える