2012-05-13 39 views
2

我正在學習用Backbone.js的工作,並設置以下環境:正確的方法被調用服務器上Backbone.js的同步 - PHP回報

/* 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)返回/輸出回答客戶端? 我想將數據傳回客戶端,例如顯示它。

回答

2

Backbone.sync()異步操作。你不能這樣做

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

因爲sync()任何有用的東西。它將請求發送到服務器,並在服務器的響應到達之前立即返回。

使用options parameter並在那裏放置successerror回調函數。

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

如果服務器返回一個響應401 Unauthorized,例如error回調將被執行;當服務器返回200 OK時回調success

有關如何使用這些回調以及可以使用的其他選項的文檔,請閱讀jQuery.ajax()文檔。

+1

作品魅力 感謝糾正這個非常基本的誤解 – gro