我试图在Chrome扩展的WebSocket创建过程中修改Origin Header。我有declarativeNetRequestWithHostAccess
的权限。我尝试使用modifyHeaders
类型的规则。**它完美地修改了fetch()
调用的头部,但没有修改websockets的头部。**我错过了什么?
下面是规则即src/rules/example.json:
[
{
"id": 2,
"priority": 1,
"action": {
"type": "modifyHeaders",
"requestHeaders": [
{
"header": "origin",
"operation": "set",
"value": "https://www.example.ai"
},
{
"header": "referer",
"operation": "set",
"value": "https://www.example.ai"
}
]
},
"condition": {
"urlFilter": "example",
"isUrlFilterCaseSensitive": false,
"resourceTypes": ["xmlhttprequest", "websocket"]
}
}
]
这里是manifest.json
...
...
"declarative_net_request": {
"rule_resources": [
{
"id": "ruleset_example",
"enabled": true,
"path": "src/rules/example.json"
}
]
},
1条答案
按热度按时间eiee3dmh1#
正如@wOxxOm所提到的,
将
"wss://*/*"
从optional_host_permissions
移动到host_permissions
解决了它。我猜对于
optional_host_permissions
我不得不调用chrome.permissions.request({ origins: ['wss://example.com'] })
以及我没有这样做。