繁体   English   中英

为什么我的提取请求被调用两次?

[英]Why is my fetch request being called twice?

API = {
    get_processed_autodesk_results : function(){
            fetch('/api/results', {
                method: 'get',
                headers: {
                    'Accept': 'application/json, text/plain, */*',
                    'Content-Type': 'application/json'
                }
            }).then(res=>res.json())
            .then(function(res) {
                console.log(res);   

            });
    }
} 

setInterval(API.get_processed_autodesk_results,5000);

那是我的代码。 我检查控制台,看到每 5 秒执行两次获取请求。 我不明白为什么会这样。 任何人都可以帮忙吗? 提前致谢

您看到的附加提取请求是一个OPTIONS请求(飞行前请求),它在请求中传递标头时发生。

摘自 MDN

与“简单请求”(上面讨论过)不同,“预检”请求首先通过 OPTIONS 方法向其他域上的资源发送 HTTP 请求,以确定实际请求是否可以安全发送。 跨站点请求是这样预检的,因为它们可能会对用户数据产生影响。

您可以测试使用和不使用标头的请求,并通过在此处检查开发人员工具来查看会发生什么:

https://jsfiddle.net/219n4a0b/

我也遇到了类似的问题,但事实证明这是因为我的路由正在通过再次请求并返回请求的服务工作者,因此服务器从主提取中获得了 2 个请求 1,而从服务工作者中获得了另一个请求。
编辑facepalm是的,我是 pwas 的新手,所以使用 return 而不是 respondWith()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM