用 jQuery.ajaxSetup 实现对请求和响应数据的过滤(4)

1         $.ajaxSetup({   
2            beforeSend: function () {
3                var params = arguments[1].data;
4                var data = '';
5                for (var key in params) {
6                    var dataUtf8 = CryptoJS.enc.Utf8.parse(params[key]);
7                    var dataBase64 = CryptoJS.enc.Base64.stringify(dataUtf8);
8                    data = data.concat('&' + key + '=' + dataBase64);
9                 };
10                arguments[1].data = data.substring(1, data.length);
11             },
12            processData: false,
13            dataFilter: function () {
14                var result = '';
15                try {
16                    var a = CryptoJS.enc.Base64.parse(arguments[0]);
17                    var result = CryptoJS.enc.Utf8.stringify(a);
18                } catch(e) {
19                    result = arguments[0];
20                } finally {
21                    return result;
22                 }
23             }
24        });

后台:

1        String param1 = request.getParameter("param1");
2        String param2 = request.getParameter("param2");
3        byte[] buffer1 = Base64.decodeBase64(param1);
4        byte[] buffer2 = Base64.decodeBase64(param2);
5        System.out.println("param1: " + new String(buffer1));
6        System.out.println("param2: " + new String(buffer2));
7        response.getWriter().write(Base64.encodeBase64String("hello".getBytes()));

后台输出:

前端输出:

至此已经大功告成了,让我们来总结下我们使用过的东西

第一个: ajaxSetup 这是设置全局的初始属性

然后是三个属性:

beforeSend:发送前执行的函数

processData:默认不序列化参数

dataFilter:对响应的数据进行过滤

然后,我们就可以给我们的数据穿上一层漂漂亮亮的衣服了。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/b8423aac074cd0472e9cdac8f4658853.html