栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

拦截XMLHttpRequest并修改responseText

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

拦截XMLHttpRequest并修改responseText

//// firefox, ie8+//var accessor = Object.getOwnPropertyDescriptor(XMLHttpRequest.prototype, 'responseText');Object.defineProperty(XMLHttpRequest.prototype, 'responseText', {    get: function() {        console.log('get responseText');        return accessor.get.call(this);    },    set: function(str) {        console.log('set responseText: %s', str);        //return accessor.set.call(this, str);    },    configurable: true});//// chrome, safari (accessor == null)//var rawOpen = XMLHttpRequest.prototype.open;XMLHttpRequest.prototype.open = function() {    if (!this._hooked) {        this._hooked = true;        setupHook(this);    }    rawOpen.apply(this, arguments);}function setupHook(xhr) {    function getter() {        console.log('get responseText');        delete xhr.responseText;        var ret = xhr.responseText;        setup();        return ret;    }    function setter(str) {        console.log('set responseText: %s', str);    }    function setup() {        Object.defineProperty(xhr, 'responseText', { get: getter, set: setter, configurable: true        });    }    setup();}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404032.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号