拦截响应
// 保存原始的 XMLHttpRequest 对象
var originalXHR = window.XMLHttpRequest;
// 创建新的 XMLHttpRequest 对象,继承自原始的 XMLHttpRequest
function ProxyXHR() {
var xhr = new originalXHR();
// 重写 onreadystatechange 事件处理函数
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) { // 请求完成
// 这里可以进行你的自定义处理
console.log('XHR response intercepted:', xhr.responseText);
}
// 调用原始的 onreadystatechange 事件处理函数
if (xhr.__originalOnReadyStateChange) {
xhr.__originalOnReadyStateChange();
}
};
// 返回新的 XMLHttpRequest 对象
return xhr;
}
// 替换全局的 XMLHttpRequest 对象为代理对象
window.XMLHttpRequest = ProxyXHR;