![](/img/trans.png)
[英]Sending message from content script to background script breaks chrome extension
[英]Chrome extension Background and content script posting message
我有一個包含jquery ui組件的內容腳本 ,我想使用http post將數據發送到我的服務器。 但是我已經意識到您不能將HTTP發布消息發送到https網站,反之亦然。 如果我將消息發送到后台腳本並從那里發布,我會對此有問題嗎? 如果站點是http或https,會有所不同嗎? 如果有所作為,我該怎么做?
如果從后台腳本發送,則切換協議沒有問題,但必須聲明對以下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.