给select2的ajax添加beforeSend方法

Posted 流年之外

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给select2的ajax添加beforeSend方法相关的知识,希望对你有一定的参考价值。

1.日前碰到一个这样的问题:后台要验证登录信息;让我在进行ajax请求的时候;都要给个Aurhorization;


我想到的方法就是在ajax的beforeSend的方法里面

beforeSend: function(xhr) {
var token = $.cookie(‘token‘);
if (token) {
xhr.setRequestHeader("Authorization", "Bearer " + token);
}
}
然后我在select2的ajax里面给了这个方法,发现不行.....
$(‘#example‘).select2({
placeholder: ‘选择上级单位‘,
minimumInputLength: 0,
ajax: {
url: ‘api/units/top‘,
type: ‘POST‘,
data: function(term, page){
return JSON.stringify({
filter: {name: term}
});
},  
     beforeSend: function (xhr) {
        //这样做没效果
     },
results: function(data, page) {
if (data.code === 200) {
var my_result = [];
data.data.forEach(function (item) {
my_result.push({
‘id‘: item.name,
‘text‘: item.name
});
});
return {results: my_result};
}else{
alertify.error(data.desc);
}
}
}
});
最后看官方文档;这样写的才有效果;
$.extend(true, $.fn.select2.ajaxDefaults, {
params: {
beforeSend: function(xhr) {
var token = $.cookie(‘token‘);
if (token) {
xhr.setRequestHeader("Authorization", "Bearer " + token);
}
}
}
});
时间紧,没来得及细看;应该还有更简单的方法















































以上是关于给select2的ajax添加beforeSend方法的主要内容,如果未能解决你的问题,请参考以下文章

在 beforeSend 上删除 ajax loader 并在 Start 之后再次添加

ajax添加请求头(添加Authorization字段)

向 Select2 AJAX 控件添加搜索词选项

使用 select2 添加“data-”属性

$.ajaxSetup 中的 beforeSend + $.ajax 中的 beforeSend

Select2:使用ajax数据源时添加和选择手动值