目前在搞三级等保项目时,发现开发的网站没有做安全机制验证。后来查找资料,发现需要在ajax请求时增加请求头信息。但网站已开发完毕,如果每个ajax请求时都去增加请求头,工作量太大了,不太现实。后来继续查找资料,发现可以使用JS动态去增加请求头。代码如下:

​
//获取ajax请求,增加请求头
(function ($) {
    //1.得到$.ajax的对象
    var _ajax = $.ajax;
    $.ajax = function (options) {
        //2.每次调用发送ajax请求的时候定义默认的error处理方法
        var fn = {
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                showmsg(XMLHttpRequest.responseText,2,1)
            },
            success: function (data, textStatus) {
            },
            beforeSend: function (XHR) {
            },
            complete: function (XHR, TS) {
            }
        }
        //3.扩展原生的$.ajax方法,返回最新的参数
        var _options = $.extend({}, {
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                fn.error(XMLHttpRequest, textStatus, errorThrown);
            },
            success: function (data, textStatus) {
                fn.success(data, textStatus);
            },
            beforeSend: function (XHR) {
                XHR.setRequestHeader('Authorization', sessionStorage.getItem("token"));//设置请求头Token  sessionStorage.getItem():说明【js中的session】
                fn.beforeSend(XHR);
            },
            complete: function (XHR, TS) {
                fnplete(XHR, TS);
            }
        }, options);
        //4.将最新的参数传回ajax对象
        _ajax(_options);
    };
})(jQuery);

​

更多推荐

JS实现所有ajax请求时,自动在请求头上增加参数