如何在select2中访问HTTP响应头

时间:2013-12-18 16:37:03

标签: jquery ajax http-headers jquery-select2

我正在使用select2构建一个lazy-appending result list的选择框。但是,分页数据(例如总项数)不是JSON响应的一部分。因此,我无法在ajax.results函数中访问它们。相反,分页数据是HTTP响应头的一部分。

是否有某种拦截机制构建到select2的ajax中,以便我可以访问HTTP头并将它们写入实际结果数据?

2 个答案:

答案 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);
}