我正在开发一个使用 GET 方法发送 HTTP 请求的 chrome 扩展。
如何使用值为 0
的参数 par
向 www.example.com
发送 GET?
https://www.example.com?par=0
(服务器读取参数par
并做一些事情)
我找到这篇文章,谈论Cross-Origin XMLHttpRequest ,但我不知道他们的示例对我有何帮助。
最佳答案
首先,您需要编辑manifest.json
并添加www.example.com
的权限:
对于新Manifest V3 ,使用
host_permissions
字段:{ "manifest_version": 3, ... "host_permissions": [ "https://www.example.com/*" ], ... }
如果您仍在使用旧的 Manifest V2,请使用
permissions
字段:{ "manifest_version": 2, ... "permissions": [ "https://www.example.com/*" ], ... }
然后在您的后台页面(或其他地方)您可以:
fetch('http://www.example.com?par=0').then(r => r.text()).then(result => {
// Result now contains the response text, do what you want...
})
另见 MDN doc for fetch()
.
使用 XMLHttpRequest
(ES5) 的弃用版本:
function callback() {
if (xhr.readyState === XMLHttpRequest.DONE) {
if (xhr.status === 200) {
result = xhr.responseText;
// ...
}
}
};
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://www.example.com?par=0", true);
xhr.onreadystatechange = callback;
xhr.send();
注意 相对 documentation page 顶部的警告:
In Manifest V3,
XMLHttpRequest
is not supported in background pages (provided by Service Workers). Please consider using its modern replacement,fetch()
关于javascript - 如何从 Chrome 扩展程序发送 HTTP GET 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25107774/