我正在尝试使用fetch in service worker文件发出GET / POST请求, 但它只发送OPTIONS请求而不发送我的原始请求。 下面是我的代码:
fetch('http://cross-origin-server/controller/function',{
headers: {
"x-app-header": 'app'
},
"mod":"no-cors"
}).then(function(response) {
console.log(response);
});
以下是请求和响应标头:
Accept:*/*
Accept-Encoding:gzip, deflate
Accept-Language:en-GB,en-US;q=0.9,en;q=0.8
Access-Control-Request-Headers:x-custom-header
Access-Control-Request-Method:GET
Cache-Control:no-cache
Connection:keep-alive
Host:192.168.1.215
Origin:http://localhost:3000
Access-Control-Allow-Headers:Content-Type, Content-Length, Accept-Encoding, Authorization,Cache-Control, x-custom-header, x-requested-with
Access-Control-Allow-Methods:GET, OPTIONS
Access-Control-Allow-Origin:*
Cache-Control:no-store, no-cache, must-revalidate
Connection:Keep-Alive
Content-Length:21
Content-Type:text/html; charset=UTF-8
我无法理解为什么我的原始请求没有发送。 我允许来自服务器端的所有来源(Access-Control-Allow-Origin:*)。 请帮助,提前致谢
编辑: 在预检(OPITONS)请求完成后,问题是“真实请求未发送”。
答案 0 :(得分:0)
服务工作人员只能使用traffic served over https://
(同源http://localhost
请求的例外情况有限)。您的示例显示您正在针对http://cross-origin-server
发出请求,虽然这显然不是真正的网址,但看起来您正在使用http://
。