.asmx 웹 메소드에서 일부 데이터를 다시 가져 오려고하지만 Ajax 호출에서 실패합니다. 1 개 매개 변수, 그룹 ID라는 이름의 정수를 취 GetUsers
jquery ajax가 Backbone.js 모음에 대해 정의되지 않은 options.data로 인해 실패했습니다.
// 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()
});
내 웹 방법 : 여기 내 JS 코드의 일부이다. 이 페이지에 따르면 http://backbonejs.org/#Collection-constructor에 따르면 MyListView.Collection 내의 초기화 메서드는 MyListView가 인스턴스화 될 때 발생하는 Collection이 만들어 질 때 호출됩니다.
오류는 다음 줄의 파일 JQuery와 - 1.12.3.js 내부에서 발생 : 여기
xhr.send((options.hasContent && options.data) || null);
이 options.data이 undefined
입니다. 그러나 옵션의 url 속성은 정확합니다. 그렇다면 jquery 아약스가 전달하는 데이터를 인식하지 못하는 이유는 무엇입니까?
감사 루이 : 당신이
jQuery.ajax
에 전달되는의 일부가 될this.options
모두를 원한다면, 당신은 같은 것을 가질 수있다! 당신은 절대적으로 옳습니다. 내 컬렉션에 동기화 메소드를 추가해야했습니다. 이것은 퍼즐의 누락 된 부분이었습니다. 기본적으로, 여기에서는 메소드가 "read"인지 검사하고, 그렇다면 결국 $ .ajax()를 호출하는 커스텀 메소드를 호출합니다. 이 커스텀 메소드 호출은 내 컬렉션의 initialize 메소드에서 초기화 된'collection.options.data'에서 전달할 곳입니다. – SpartaSixZero