Javascript 拦截XMLHttpRequest并发送承诺

Javascript 拦截XMLHttpRequest并发送承诺,javascript,asynchronous,promise,Javascript,Asynchronous,Promise,我正在为视频播放器构建一个代理,它可以拦截http请求,并使用一个可以异步解析的承诺发送回响应 我发现了这种拦截http请求的方法 // save original `send` method const origSend = XMLHttpRequest.prototype.send; // redefine `send` method // you could also pass extra parameters if needed XMLHttpRequest.prototype.sen

我正在为视频播放器构建一个代理,它可以拦截http请求,并使用一个可以异步解析的承诺发送回响应

我发现了这种拦截http请求的方法

// save original `send` method
const origSend = XMLHttpRequest.prototype.send;

// redefine `send` method
// you could also pass extra parameters if needed
XMLHttpRequest.prototype.send = (...origParams) => {
  console.log('send called');
  origSend(...origParams);
}
现在我不想像上面那样使用origSend返回响应。 我需要的是将url发送到我的后端引擎,该引擎将下载内容并将需要发送回视频播放器的bytearray发送给我。为了实现这一点,我考虑使用一个承诺,当我的后端引擎能够完成请求时,它将解决这个问题


现在我不确定的是如何将引擎获取的字节数组从截获的代码返回到视频播放器。如果能找到一些相关的代码片段就好了。

首先:不要尝试修改本机浏览器代码的原型。当其他图书馆需要该功能时,它可以破坏其他内容。第二:那里有很多图书馆可以为你做这些事情。与axios类似,视频播放器使用的是XHR,并且没有其他方法可以将其配置为使用不同的源?如果不知道当前正在拦截的进程是什么,那么很难提供帮助。如果使用的库不希望在
onreadystatechange
中有承诺,或者其他加载侦听器可能会变得复杂。这里有太多未知数在您进行此拦截之前,请求当前正在执行什么操作?也有点混淆了你所说的引擎是什么意思。这是您的服务器后端,它从其他远程服务器获取内容吗?在最简单的级别上,如果您所做的只是返回相同的内容格式,那么您可能真正需要的就是截取url并修改它以发送到您的代理,而不是原始源。其余的请求方法的工作原理相同