我正在开发一个依赖于 3rd 方 javascript 库的 Chrome 扩展。在库的代码中,其资源和 API 端点的所有 URL 都使用相对协议,例如:
//blah.com/api/get-the-stuff/
问题是,当从扩展中进行调用时,我认为 URL 变成了这样:
chrome-extension://blah.com/api/get-the-stuff/
显然这是行不通的。一种解决方案是将 3rd 方库更改为完整的 URL,例如:
https://blah.com/api/get-the-stuff/
这可行,但实际上维护此库的修改版本是不可持续的。有没有办法处理这个?
我认为chrome.webRequest API看起来很有希望在请求发送之前重写 URL,但是这些相对协议 URL 在触发此 API 上的侦听器之前似乎失败了。请求在开发者控制台的网络选项卡中显示为:
chrome-extension://invalid/
这是 Chrome 在
chrome-extension://blah.com/api/get-the-stuff/
创建请求之前对我的 URL 所做的重写吗?我是否需要以某种方式更改我的清单以允许触发这些“错误”的 URL 请求,以便我可以重写它们?
或者,也许我完全是在叫错树?