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

标签 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);

这是我的代码。我检查控制台,发现获取请求每 5 秒执行两次。我不明白为什么会发生这种情况。有人可以帮忙吗?提前致谢

最佳答案

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

Excerpt from MDN :

Unlike “simple requests” (discussed above), "preflighted" requests first send an HTTP request by the OPTIONS method to the resource on the other domain, in order to determine whether the actual request is safe to send. Cross-site requests are preflighted like this since they may have implications to user data.

您可以测试带有或不带有 header 的请求,并通过在此处检查开发人员工具来查看会发生什么:

https://jsfiddle.net/219n4a0b/

关于javascript - 为什么我的提取请求被调用两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50029580/

相关文章:

javascript - 如何在 Javascript 中获取表单的名称?

javascript - 如何使用 javascript 或 lodash 从数组中删除项目

javascript - CodeMash 2012 的 'Wat' 演讲中提到的这些奇怪的 JavaScript 行为的解释是什么?

javascript - 如何关闭 CSS 以更快地执行自动化测试?

javascript - 如何在提交时显示图像

javascript - 如何在由支持 bean 管理的进度条上设置 JS 效果?

javascript - 引用子模块angularjs中的Controller

javascript - 如何找出哪个元素触发了哪个事件

javascript - 在 onclick 函数后需要帮助将 div 移动到另一个 div

javascript - jQuery:查找部分类名