0

这是我正在使用的示例模型:

var UserModel = Backbone.Model.extend({
    urlRoot: 'json.php',
    defaults: {
        name: '',
        email: ''
    }
});
var user = new UserModel();
// Notice that we haven't set an `id`

console.log(user.isNew());
var userDetails = {
    name: 'Thomas',
    email: 'thomasalwyndavis@gmail.com'
};
// Because we have not set a `id` the server will call
// POST /user with a payload of {name:'Thomas', email: 'thomasalwyndavis@gmail.com'}
// The server should save the data and return a response containing the new `id`
user.save(userDetails, {
    success: function (user) {
        console.log(user.toJSON());
    }
})

在服务器端(apache),我使用 php 来获取数据。这显然是在保存一个新模型,但是 $_POST 变量为空并且数据出现在:

     file_get_contents("php://input");

该数据是否应该出现在 $_POST 变量中?也许它是一个 POST,但 Backbone 没有创建查询字符串,这意味着 $_POST 变量将为空。在服务器端,我可以检查 json 数据以查看它是否是新对象(通过 id 的存在),但是有没有办法区分 WAMP 上的 put 和 post 之间的区别?也许浏览器甚至不支持 put 并且只是发布?

4

0 回答 0