为什么谷歌浏览器插件中不能使用xmlhttprequest(axios)

按照Chrome Extension官方说明,在MV3中,由于Service Workers的机制,background pages中不支持XMLHttpRequest,建议使用原生fetch()。由于axios使用的是XMLHttpRequest,因此,不能使用axios进行API请求。

在V3 (MV3) 版本中,Google 引入了Service Workers来替代传统的background pages作为扩展的后台进程。这一变更主要是出于安全性和性能的考虑。

Service Workers的设计初衷是处理网络请求、缓存以及提供离线支持,它们运行在一个沙盒化的环境中,拥有自己的执行上下文,与网页或其他Worker隔离。Service Workers不具有窗口上下文,因此不能直接使用一些与DOM(文档对象模型)相关的API,如XMLHttpRequest。

XMLHttpRequest(XHR)是一个与浏览器窗口上下文紧密绑定的API,它主要用于在浏览器环境中执行异步HTTP请求。

由于Service Worker没有直接访问DOM或浏览器窗口的权限,使用XHR会与Service Worker的设计原则冲突,可能导致安全漏洞或行为不可预测性。

因此,在Chrome Extension的MV3规范中,如果你需要在后台处理网络请求,应该使用fetch()方法而非XMLHttpRequest。对原有的background脚本进行相应的调整以兼容Service Worker的限制和特性。

相关推荐
Antruly2 分钟前
uvscope:Web 调试界的瑞士军刀
前端
多弗朗皮卡丘3 分钟前
C++STL之空间配置器
开发语言·c++·内存池·空间配置器
tommyjiatong6 分钟前
什么是PHP漏洞
开发语言·php
计算机魔术师14 分钟前
Anthropic S-1 披露:半年前发布的模型,已贡献不了多少收入了
前端
CodeYp201915 分钟前
第19讲:封装红黑树实现 mymap 和 myset
开发语言·c++·红黑树
qq_3400408821 分钟前
idea2021版,vue项目的package.json不展示scripts的绿色箭头
javascript·vue.js·json
qq_3646821525 分钟前
录音APP怎么切换语言?多语言版本如何使用
java·服务器·前端
2601_9689007737 分钟前
玻璃深加工的工艺窗口:4 道工序的温度与时间参数边界
android·java·javascript
志尊宝38 分钟前
AI原生前端开发(037):AI辅助的Vue 3开发最佳实践
前端·vue.js·ai-native
中科三方42 分钟前
AI时代新攻击面:悬空DNS记录正在成为黑客的低成本入侵入口
服务器·前端·人工智能