这是我正在处理的视图。这是一个简单的注册表格。它从一组输入标签中捕获数据,并将其发布到服务器。然而,POST 数据似乎并没有发送到服务器。
define(['text!templates/register.html'], function(registerTemplate){
var registerView = Backbone.View.extend({
el: $('#content'),
events: {
"submit form" : "register"
},
register: function() {
var postData = {
firstname: $('input[name=firstname]').val(),
lastname: $('input[name=lastname]').val(),
email: $('input[name=email]').val(),
password: $('input[name=password]').val()
};
$.post('/register', postData, function(data){
console.log(data);
}
}).error(function(err){
console.log(err);
});
return false;
},
render: function(){
this.$el.html(registerTemplate);
}
});
return registerView;
});
这是我的应用程序中的请求侦听器。记录时所有变量都显示“未定义”。
app.post('/register', function(req, res){
var firstname = req.body.firstname,
lastname = req.body.lastname,
email = req.body.email,
password = req.body.password;
console.log(email);
console.log(firstname);
console.log(lastname);
console.log(password);
if (email === null || password === null) {
res.send(400);
} else {
Account.register(email, password, firstname, lastname);
res.send(200);
}
});
我可以看到我的应用程序中的侦听器在提交表单时被触发,但它没有收到我发送的 POST 数据。在浏览器控制台中,我得到的所有错误都是“POST htp://localhost:3000/register 500(内部服务器错误)”