为什么谷歌浏览器插件中不能使用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的限制和特性。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-05-10 22:48:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-10 22:48:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-10 22:48:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-10 22:48:01       20 阅读

热门阅读

  1. nodejs后台babel在线热编译jsx

    2024-05-10 22:48:01       12 阅读
  2. Mac 报错 Zsh: command not found :brew

    2024-05-10 22:48:01       14 阅读
  3. npm详解

    2024-05-10 22:48:01       10 阅读
  4. C++ 类和对象:面向对象编程基础

    2024-05-10 22:48:01       9 阅读
  5. 【算法】高精度(string实现)

    2024-05-10 22:48:01       11 阅读
  6. object

    object

    2024-05-10 22:48:01      9 阅读
  7. Vue 数据校验

    2024-05-10 22:48:01       11 阅读
  8. Vue3 比 Vue2 有什么优势?

    2024-05-10 22:48:01       11 阅读
  9. 代码随想录|总结篇

    2024-05-10 22:48:01       10 阅读
  10. Linux——磁盘管理 parted

    2024-05-10 22:48:01       10 阅读
  11. 力扣 256. 粉刷房子 LCR 091. 粉刷房子 python AC

    2024-05-10 22:48:01       8 阅读
  12. Unity延时触发的几种常规方法

    2024-05-10 22:48:01       8 阅读