Noob question here:骨干模型保存触发器Chrome/FF上的错误回调
我正在使用ASP.NET MVC 3,我试图通过Backbone保存一个实体。下面是我有:
我定义我的骨干模型(计划)这样:
var Program = Backbone.Model.extend({
defaults: function() {
return { name: "" };
},
initialize: function (attrs) {
this.set('name', attrs.name);
},
urlRoot: '/program/add'
});
然后我勾了模型上保存按钮的单击事件:
$('.add-program').click(function() {
var programName = $('.program-name').val();
var program = new Program({ name: programName });
program.save(null, {
success: function (model, response) {
alert('success');
},
error: function (model, response) {
alert('error');
}
});
});
它在IE上工作(令人惊讶!) - ProgramController.Add(字符串名称)被调用罚款,我得到一个成功的回应。但是我在Chrome和FF上遇到了问题 - 它们都触发了错误回调,但在Chrome上我的控制器操作甚至没有受到任何打击(它在FF上执行)。有趣的是,我的动作断点确实碰到FF,具有适当的参数值,但仍然得到错误回调。
我不确定这里发生了什么事。我尝试通过Firebug/Chromebug进行调试,并且没有在错误回调参数(errorStatus只是...以及“错误”!)上看到很多内容。我也试过看网络选项卡和提琴手,我没有看到任何铃声响起(也许我没有看到正确的地方)。我也尝试过直接调用控制器的jquery ajax,并且仍然会出现相同的奇怪行为。
以防万一,这里的MVC行动(虽然我不认为这个问题是在这里):
[HttpPost]
public JsonResult Add(string name)
{
var stubbedResponse = new {id = Guid.NewGuid()};
return Json(stubbedResponse);
}
任何想法可能是造成这个?
而不是警报(“错误”)试图做一个的console.log(响应),看看MVC被发回。不知道为什么IE会以不同的方式处理它,但值得一试。 – clexmond 2012-04-12 02:03:55
没有运气。响应对象有一个responseText:“”和statusText:“错误”。不确定其他任何属性是否能为我提供更好的反馈。 – rtorres 2012-04-12 02:39:11
小提琴http://jsfiddle.net/Uj5Ae/2/与您的客户代码似乎是好的。什么与您的服务器响应?或者Backbone和Underscore版本不匹配? – nikoshr 2012-04-12 08:27:52