簡體   English   中英

Chrome擴展程序背景和內容腳本發布消息

[英]Chrome extension Background and content script posting message

我有一個包含jquery ui組件的內容腳本 ,我想使用http post將數據發送到我的服務器。 但是我已經意識到您不能將HTTP發布消息發送到https網站,反之亦然。 如果我將消息發送到后台腳本並從那里發布,我會對此有問題嗎? 如果站點是httphttps,會有所不同嗎? 如果有所作為,我該怎么做?

如果從后台腳本發送,則切換協議沒有問題,但必須聲明對以下URL的許可:

在Google清單文件中查看更多信息以及該重復的問題

是的,您可以在內容腳本中使用http POST以及任何其他http方法(例如GET,PUT,PATCH),也可以在后台腳本中使用它。

但是,在兩種情況下,都必須在擴展程序的權限中聲明發送請求的URL。 您可以在清單中執行此操作。 例如,如果您想將http請求發送到http://www.some-domain.com ,則必須將該URL(或與該URL匹配的模式)添加到清單的permissions數組中:

{
    ...
    "permissions": [
      "http://www.some-domain.com/*"
    ],
    "name": "Test",
    "manifest_version": 2,
    "version": "0.0.0"
}

您可以將通配符添加到URL權限模式; 因此,如果您想同時匹配https和http,則可以執行*://www.some-domain.com/* 請在此處查看官方文獻

我應該警告您,如果您將內容腳本附加到以https而不是http加載的頁面上,由於Chrome阻止了混合內容,因此您可能不被允許發送不安全的http請求,我認為這需要用戶覆蓋。 因此,一個好的經驗法則是:如果將內容腳本附加到通過http加載的頁面上,則使用http發送請求; 如果您要附加到通過https加載的頁面,請使用https。

最后一個提示:別忘了在更改清單后重新加載擴展程序,否則權限更改不會反映出來。 要重新加載您的擴展程序,請轉到chrome://extensions ,找到您的擴展程序,然后點擊reload。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM