使用proxy把后端返回的图片域名替换成目标域名
使用proxy把后端返回的图片域名替换成目标域名
proxy 对象用于创建一个对象的代理,是在目标对象之前架设一个拦截,外界对该对象的访问,都必须先通过这个拦截。通过这种机制,就可以对外界的访问进行过滤和改写。
ES6 原生提供 Proxy 构造函数,用来生成 Proxy 实例。
var proxy = new Proxy(target, handler);
target参数表示所要拦截的目标对象,handler参数也是一个对象,用来定制拦截行为。
以下使用示例:
export function newproxy(obj) {// 必须是http开头或者https开头,结尾为'/'// 把host替换成指定数值var reg = /^http(s)?:\/\/(.*?)\//;var ToReplace = "/";let handler = {get: function (target, propKey, receiver) {if (target[propKey]) {if (target[propKey].constructor == Array) {target[propKey] = target[propKey].toString()}if (target[propKey].indexOf("http") !== -1) {target[propKey] = target[propKey].replace(reg, ToReplace);}if (target[propKey].indexOf("http") !== -1 &&target[propKey].indexOf(",") !== -1) {var imglist = target[propKey].split(',');target[propKey] = "";imglist.forEach((element, index) => {if (element && index == 0) {target[propKey] += element.replace(reg, ToReplace);} else {target[propKey] += "," + element.replace(reg, ToReplace);}});}if (target[propKey].indexOf("<img") !== -1 &&target[propKey].indexOf("http") !== -1) {var regContent = /<img [^>]*src=['"]([^'"]+)[^>]*>/gi;target[propKey] = target[propKey].replace(regContent,function (img, src) {var regImg =/<img([^>]*)\ssrc=(['"])(?:[^\2\/]*\/){3}([^\2]+)\2/gi;let newSrc = img.replace(regImg,`<img$1 src=$2${ToReplace}$3$2`);return newSrc;});}}return target[propKey];},};return new Proxy(obj, handler);
}
使用
var newback = newproxy(data); //data为后端返回的数据 data{img:http://1234656/....jpg}
const newImg= newBack.img; //把img的域名替换成/
最新文章
- 使用ping命令确定网络故障所在的方法
- 网易有道开源语音合成引擎“易魔声”
- 《QT从基础到进阶·二十四》按钮组QButtonGroup,单选框QRadioButton和多选框QCheckBox
- Android权限动态申请(包括悬浮窗)
- MySQL总结(更新中...)
- 小程序(uniapp)获取位置失败提示用户手机是否开启定位或小程序是否授权位置信息
- 一款IT团队都在用的私有化知识库,技术开放,还开源了!
- 保姆级vue
- Web渗透测试工具的编写
- 通信原理板块——语音压缩编码
- VB.net TCP服务端监听端口接收客户端RFID网络读卡器上传的读卡数据
- python语法之注释
- .net在使用存储过程中IN参数的拼接方案,使用Join()方法
- uniapp: 实现pdf预览功能
- 利用Python群组分析方法剖析客户行为
- 记录一个错误
- 智能化的同城服务共享台球室小程序系统,提升台球室运营效率