• 给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);
    }
    }
    }
    });
    时间紧,没来得及细看;应该还有更简单的方法
  • 相关阅读:
    垂直水平居中几种实现风格
    重绘(repaint)和回流(reflow)
    对象深拷贝
    PhantomJS not found on PATH
    d3.js 数据操作
    canvas 绘制圆弧
    d3.js 柱状图
    d3.js -- 比例尺 scales scaleLinear scaleBand scaleOrdinal scaleTime scaleQuantize
    d3.js -- select、selectAll
    map映射
  • 原文地址:https://www.cnblogs.com/hanhui66/p/7008335.html
Copyright © 2020-2023  润新知