使用proxy把后端返回的图片域名替换成目标域名

编程入门 行业动态 更新时间:2024-10-20 05:49:08

使用proxy把后端返回的图片<a href=https://www.elefans.com/category/jswz/34/1769899.html style=域名替换成目标域名"/>

使用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的域名替换成/

更多推荐

使用proxy把后端返回的图片域名替换成目标域名

本文发布于:2023-11-14 14:30:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1587694.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:域名   后端   替换成   目标   图片

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!