给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 之后再次添加