我試圖從我的.asmx web方法獲取一些數據,但它在ajax調用時失敗。下面是我的一些JS代碼:jquery ajax由於options.data未能定義爲Backbone.js集合
// BaseCompositeView is basically an object extended from Marionette.CompositeView
MyListView = App.Base.Objects.BaseCompositeView.extend({
// contents removed for brevity
});
// BaseModel is basically an object extended from Backbone.Model
MyListView.Model = App.Base.Objects.BaseModel.extend({
// nothing here
});
// BaseCollection is basically an object extended from Backbone.Collection
MyListView.Collection = App.Base.Objects.BaseCollection.extend({
url: "../WebServices/MyService.asmx/GetUsers",
model: MyListView.Model,
initialize: function(options) {
this.options = _.extend({}, this.defaults, this.options);
this.options.data = JSON.stringify({
"groupID": parseInt(App.Prop.get("GroupID"), 10)
});
}
});
var group_users_view = new MyListView({
tagname: "div",
model: new MyListView.Model(),
collection: new MyListView.Collection()
});
我的Web方法GetUsers
需要1個參數,命名組ID的整數。根據此頁面:http://backbonejs.org/#Collection-constructor,MyListView.Collection中的initialize方法在創建集合時調用,當MyListView被實例化時會發生這種情況。
該錯誤發生在下面的行的文件的jquery-1.12.3.js內:
xhr.send((options.hasContent && options.data) || null);
這裏,options.data是undefined
。但是,選項的url屬性是正確的。那麼,爲什麼jQuery Ajax不能識別我傳入的數據?
感謝路易斯!你是絕對正確的。我需要爲我的收藏添加同步方法。這是謎題中缺失的一部分。基本上,在這裏,我添加了一個條件來檢查該方法是否爲「讀取」,如果是,則調用一個最終調用'$ .ajax()'的自定義方法。這個自定義方法調用是我在我的'collection.options.data'中傳入的,它在我的集合的初始化方法中初始化。 – SpartaSixZero