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参数和放置successerror回调函数。

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

如果服务器返回响应,error回调将被执行401 Unauthorized,例如;服务器返回时的success回调200 OK

有关如何使用这些回调以及您可以使用哪些其他选项的文档,请阅读jQuery.ajax()文档。

于 2012-05-13T13:56:54.363 回答