作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在构建一个 chrome 扩展并使用 chrome.webRequest 拦截所有 GET 请求。其中一个请求从 http://test.com/bla.xml 获取一个 XML 文件.这个 XML 文件托管在我的网络服务器上,所以获取它很简单。我的问题是,如何发送生成的 XML 文件并将其返回。我知道如何拦截和修改 webRequest 中的 URL,但我不太确定如何将它发送到我即时创建的文件。
chrome.webRequest.onBeforeRequest.addListener(
function (details) {
if (details.url === 'http://test.com/bla.xml') {
var xmlDoc = "<person>me</person>";
return { redirectUrl: xmlDoc };
}
我希望能够将 XHR 重定向到动态生成的文件。此文件不一定是 XML 文档,它可以是我使用存储的 blob 创建的 jpg 文件。
更新:我曾尝试转发到数据 URI,但现在出现此错误:
XMLHttpRequest cannot load http://test.com/bla.xml. The request was redirected to a URL ('data:text/xml;base64,sdfkldsfjdslfjsfsjf') which has a disallowed scheme for cross-origin requests.
我已将 http:///和 data: 添加到 list 中。
最佳答案
最直接的方法是在服务器上动态生成要返回的文件。
除此之外,您是否尝试过数据:URI?鉴于您可以控制重定向 URL,您可以将要返回的内容编码为数据:URI 并将其作为重定向目标返回。引用如下:
关于javascript - 拦截 GET 请求并重定向到生成的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24148386/
我是一名优秀的程序员,十分优秀!