TA的每日心情 | 慵懒 2022-3-8 11:41 |
---|
签到天数: 2 天 [LV.1]初来乍到
荣誉开发者
- 积分
- 1379
|
发表于
2024-1-11 22:50:08
|
显示全部楼层
可以做到但这个库没实现,对响应的修改是基于原响应基础上的,覆盖响应值的话请求都不需要发生,这个可以自己写代码实现,给你写个可能不是很通用的例子(不需要引入这个库):
- const xhrOpen = XMLHttpRequest.prototype.open;
- XMLHttpRequest.prototype.open = function(method, url, ...args) {
- if (url.includes('www.example.com/test')) {
- let onload = null;
- Object.defineProperty(this, 'onload', {
- configurable: true,
- enumerable: true,
- get: () => onload,
- set: value => (onload = value)
- });
- this.send = () => {
- Object.defineProperty(this, 'responseText', {
- configurable: true,
- enumerable: true,
- get: () => '我是响应值',
- });
- const loadEvent = new ProgressEvent('load');
- this.dispatchEvent(loadEvent);
- onload.call(this, loadEvent);
- };
- }
- return xhrOpen.call(this, method, url, ...args);
- };
复制代码 |
|