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

Mik*_* Jr 5 javascript

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);
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*s W 11

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

摘自 MDN

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

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

https://jsfiddle.net/219n4a0b/

  • 听起来好像 OP 说控制台每五秒记录两次。OPTIONS 请求不会导致这种情况。 (3认同)