相关的报错信息:
XMLHttpRequest is not defined at chrome-extension:
原因
显然, Service Worker 不支持 XMLHttpRequest
解决方案
用 fetch
相关资料
通过 fetch 上传 JSON 数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| 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);
});
|
或者最简单的, 仅仅上传, 不考虑响应与异常情况
1
2
3
4
5
6
7
8
9
| const data = { username: 'example' }; // 定义数据
fetch('https://example.com/profile', {
method: 'POST', // or 'PUT' // 指定请求方法
headers: {
'Content-Type': 'application/json', // 指定内容类型
},
body: JSON.stringify(data), // 传入内容
});
|