【问题标题】:Calling backend API from chrome extension从 chrome 扩展调用后端 API
【发布时间】:2018-10-05 15:14:59
【问题描述】:

我需要从开发 chrome 页面操作扩展中对“http://localhost:3000/posts”进行 GET http 调用。通过 GET 操作,我得到了需要在 popup.html 中显示的帖子列表。在“content.js”中,我从当前选项卡中获取主题列表,作为 GET 请求中的查询参数传递。

  1. 如何从 chrome 扩展发出 GET 请求? - 来自 chrome 扩展的 http 请求的教程链接(如果可用)会有所帮助。
  2. 应该从哪里发出 get 请求 - content.js、popup.js 或 background.js?

【问题讨论】:

    标签: google-chrome-extension


    【解决方案1】:

    由于 chrome 扩展只是一个 html/css/js - 要发出 Web 请求,您可以使用与在普通网站上相同的技术。例如。 fetch apiXHR

    从哪里打电话取决于您。如果您想缓存结果背景页面可能会更好,但您需要使用messaging 将数据从背景页面传输到弹出页面。否则,您可以直接从弹出脚本中调用您的 api。

    无论如何,在使用托管在 localhost 上的 api 时,您可能会遇到 CORS 问题(这是已知的 chrome 限制)。对于普通页面,您可以使用自动将 CORS 标头添加到所有请求的众多扩展之一,但我不确定它们是否适用于来自扩展的请求。

    【讨论】:

    • 谢谢!!在 chrome 扩展中缓存结果的首选方法是什么 - 除了“本地存储”之外还有其他选项吗?
    • 对于扩展,最好使用 chrome.storage api,或者如果您不需要在浏览器重新启动之间保留缓存,那么您可以将其保存在后台页面中的变量中。如果对您有帮助,也不要忘记接受答案。
    猜你喜欢
    • 2016-06-12
    • 2014-05-21
    • 2016-08-15
    • 2023-03-20
    • 2013-12-08
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多