186 字
1 分钟
Chrome 拓展开发 Service Worker 无法使用 XMLHttpRequest 发送 HTTP 请求

相关的报错信息: XMLHttpRequest is not defined at chrome-extension:

原因#

显然, Service Worker 不支持 XMLHttpRequest

解决方案#

用 fetch

相关资料#

通过 fetch 上传 JSON 数据

const data = { username: 'example' }; // 定义数据
fetch('https://example.com/profile', {
method: 'POST', // or 'PUT' // 指定请求方法
headers: {
'Content-Type': 'application/json', // 指定内容类型
},
body: JSON.stringify(data), // 传入内容
})
.then((response) => response.json()) // 取响应 json
.then((data) => { // 对解析完成的 json 进行操作
console.log('Success:', data);
})
.catch((error) => { // 捕捉错误
console.error('Error:', error);
});

或者最简单的, 仅仅上传, 不考虑响应与异常情况

const data = { username: 'example' }; // 定义数据
fetch('https://example.com/profile', {
method: 'POST', // or 'PUT' // 指定请求方法
headers: {
'Content-Type': 'application/json', // 指定内容类型
},
body: JSON.stringify(data), // 传入内容
});
Chrome 拓展开发 Service Worker 无法使用 XMLHttpRequest 发送 HTTP 请求
https://slimenull.com/posts/20221015111704/
作者
SlimeNull
发布于
2022-10-15
许可协议
CC BY-NC-SA 4.0