有时,需要为每个请求或从浏览器发出的特定请求添加特殊标头。执行此操作的常用方法是使用允许我们修改请求标头的浏览器扩展。有没有其他方法可以做到这一点,没有任何浏览器扩展?
PS - 我搜索过SO而没有找到一篇真正建议或展示如何做我需要的帖子。
答案 0 :(得分:8)
在用于制作自定义HTTP请求(XMLHttpRequest和fetch)的API之外,不可能将任意HTTP标头添加到浏览器使用嵌入在页面中的JS的请求中。
答案 1 :(得分:0)
如果您控制要使用此功能的网站,则可以通过将每个应用程序设置为安装ServiceWorker来实现。简而言之,服务工作者在您的浏览器中作为代理服务器运行。即使您没有打开网站,他们也可以执行通知您更新的操作。
在ServiceWorker中,您可以设置事件侦听器,以代表客户端应用程序执行一些异步任务。这包括fetch
事件,每次网页发出请求时都会触发。
Here's关于实施ServiceWorker的人员的文章,该人员也需要拦截网络请求。您可以遵循其中的大部分内容,而只是在检查请求类型时更改逻辑。此时,您可以在代表应用程序分派之前添加任何特殊的标头。
答案 2 :(得分:0)
不使用任何外部工具就无法在现有DOM中编辑请求。最合适的是浏览器扩展,它可以编辑由JavaScript代码完成的现有DOM和HTTP请求(XMLHttpRequest和提取)。
如果网站的所有者是您,则有数百万种可能性可以向请求添加标头。对于您使用哪个库执行请求,解决方案也有所不同。
但是通常不建议修改不是您自己的网站数据。
浏览器扩展是您发现问题的确切工具。 希望我的评论对您有帮助。