【发布时间】:2016-03-16 21:21:09
【问题描述】:
我不确定这是否是淘汰赛、jquery 或 javascript 函数,但该站点中的某个人给了我一个代码来解决我遇到的问题。他使用了我以前从未见过的 .GET 方法,下面是代码示例。
完整代码:http://jsfiddle.net/rqwku4kb/
// list filter & automatic loading
self.filter = ko.observable("");
self.orderby = ko.observable("");
self.params = ko.computed(function() {
return ko.toJS({
$filter: self.filter,
$orderby: self.orderby
});
}).extend({
rateLimit: 100
});
self.params.subscribe(self.load, self);
IncidentList.prototype.load = function(params) {
var self = this;
return $.get(Incident.BASE_URL, params).then(function(data) {
if (data.d.results) {
self.incidents(data.d.results.map(function(item) {
return new Incident(item);
}));
} else {
console.log("no results received from server");
}
}).fail(function() {
console.log("error", arguments);
});
};
现在这段代码从服务器获取数据,但是当我期待 JSON 时,它以 XML 格式返回。所以它返回给我错误,因为 data.d.results 不存在。我更熟悉 Knockout $.getJSON 或 .ajax 方法,我可以在其中手动添加标头,以便它可以返回我习惯的 JSON 数据。
你们会推荐什么,废弃函数并只使用 $.getJSON/AJAX 或者有没有办法在 .get 中包含标头?
【问题讨论】:
标签: javascript jquery json ajax knockout.js