给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);
}
}
}
});
时间紧,没来得及细看;应该还有更简单的方法
原文地址:https://www.cnblogs.com/hanhui66/p/7008335.html