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