我正在使用select2构建一个lazy-appending result list的选择框。但是,分页数据(例如总项数)不是JSON响应的一部分。因此,我无法在ajax.results
函数中访问它们。相反,分页数据是HTTP响应头的一部分。
是否有某种拦截机制构建到select2的ajax中,以便我可以访问HTTP头并将它们写入实际结果数据?
答案 0 :(得分:4)
@ fynn的答案在Select2 4.x中不再有效,这是一个例子。
它会检查ValidateIssuerSigningKey = False
(当前页码,例如" 1")和X-Page
(例如" 5")标头。如果这些内容尚未显示,则还会在https://developer.github.com/v3/#pagination
X-Total-Pages
标题为Link
的标题
rel=next
答案 1 :(得分:2)
我刚刚通过提供自定义传输功能解决了这个问题:
transport: function(params) {
var callback = params.success;
params.success = function(data, textStatus, jqXHR) {
callback({
items: data,
total: jqXHR.getResponseHeader('HeaderName')
}, textStatus, jqXHR);
};
return $.ajax(params);
}