【JavaScript42】axios拦截器

在前端, 我们能看到有些网站会对每次请求都添加加密信息. 或者每次返回数据的时候, 都有解密逻辑. 那此时. 你思考. 不可能每次请求都要程序员去手动写加密逻辑.

axios提供了拦截器. 可以对每一个请求进行拦截. 并修改请求的内容.拦截器还可以对响应进行拦截. 并修改响应的数据.

    1. 请求的参数, 或者请求头里面有加密数据.
    1. 返回的数据, 或者返回的响应头里可能会有加密数据.
// 1. 请求拦截器
        // promise对象中的函数中两个参数. resolve和reject
        axios.interceptors.request.use(function(config){
            console.log("发请求之前");
            console.log("请求参数", config.data);
            // 对url进行调整
            config.url = config.url + "&md5=dddddddd";
            console.log(config);
            config.headers['qiao']= "jfkldsjaflkadjsklfjadslkf";
            console.log("发请求之前");
            return config; // 必须返回config
        });

        // 2. 响应拦截器.
        axios.interceptors.response.use(function(response){
            console.log("请求返回的数据是:");
            console.log(response); // 在这里可以完成数据解密.
            return response.data; // 这里返回给业务代码
        });

        $(function(){
            $("#btn").click(function(){
                // axios发的请求, 默认就是json
                axios.post("http://127.0.0.1:5000/axios_ajax?1=1", {uname: 'qiao', age: 18})
                    .then(function(data){
                        console.log("返回的数据是");
                        // 返回的数据需要用`响应对象.data`才能获取到
                        console.log(data);
                        console.log("返回的数据接受完毕.");
                    })
                    .catch(function(){
                        console.log("请求失败了或者报错了.")
                    });
            });
        });

逆向示例

posted @   Tony_xiao  阅读(103)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2022-08-12 【pytest】pytest.ini配置文件(markers,addopts)
2022-08-12 【pytest】pytest.ini配置base_url切换环境运行
点击右上角即可分享
微信分享提示