当前位置: 首页 > 面试题库 >

Axios在内部调用功能(Internet Explorer)中仅被调用一次

牧信厚
2023-03-14
问题内容

我有一个函数,每2.5秒调用一次以检查在后台运行的任务。get如果响应为错误,则它将axios调用到url,如果响应成功,则停止该函数。

这在Chrome和Mozilla上完美运行,但由于某些原因在IE(版本11)中不起作用。该函数可以无限地调用自身,但是检查日志表明它仅调用axios一次res.data.err == "Task not ready",即使后端任务已经完成,它也将永远循环。

为什么没有在IE上再次调用axios?有什么我想念的吗?

checkProgress() { 
    axios.get(url.CHECK_UPLOAD_TASK, { params: { id: this.state.taskID} }).then(res => {
        if(res.data.success){
            this.setState({loading: false});
            //do something if successfully finished task
        } else {
            if(res.data.err == "Task not ready") {
                setTimeout(() => {
                    this.checkProgress();
                },2500);
            } else {
                this.setState({loading: false});
                // do something if task had an error
            }
        }
    });
}

问题答案:

我在InternetExplorer(11,Edge)上也遇到了类似的问题(尽管使用了fetch),用于轮询服务。我发现使用“ Pragma:no-
cache”标头解决了该问题。

您可以尝试一下:

const config = {
    headers: { Pragma: 'no-cache'},
    params: { id: this.state.taskID }
}

该呼叫应如下所示:

axios.get(url.CHECK_UPLOAD_TASK, config).then(...)


 类似资料:
  • 问题内容: 我是React的新手,现在我想在表中显示一些记录,现在出现此错误。请帮帮我。 无效的挂接调用。挂钩只能在功能组件的主体内部调用。发生这种情况可能是由于以下原因之一:1.您的React和渲染器版本可能不匹配(例如React DOM)2.您可能违反了《胡克规则》 3.您可能在其中包含多个React版本相同的应用程序请参阅有关如何调试和解决此问题的提示。 问题答案: 因为你。在此处查看更多信

  • ap.scan(OPTION | type, CALLBACK) 调用扫一扫功能。 OPTION 参数说明 名称 类型 必填 描述 type String 否 扫描目标类型,支持 qr / bar,相应扫码选框会不同,默认 qr CALLBACK 参数说明 名称 类型 描述 code String 扫码所得数据 错误码说明 error 描述 10 用户取消 11 操作失败 代码示例 <script

  • 这个包的主要用途就是在 API 内部执行请求。它允许你在可用的 API 基础上构建你的应用。内部请求也可以返回原始数据,而不是原始响应对象,这意味着你可以获得与之相关的所有语法糖。 我们需要构建一个分发器实例来发起内部请求。 $dispatcher = app('Dingo\Api\Dispatcher'); 我们现在可以用标准的 HTTP 进行内部请求. Route::get('/', func

  • 我收到这个错误”无效的钩子呼叫。钩子只能在函数组件的主体内部调用。“当我尝试运行我的函数时。我试图运行一个脚本,生成reCaptcha令牌脚本如下: 这个组件应该生成令牌(这是我得到错误的地方) 在另一个组件中,我调用了前面的脚本组件,并传递了一个动作类型,但是我得到了提到的react钩子错误(仅显示相关代码)。 我想问题在于我调用/使用导入组件的方式,但我找不到解决方案?

  • 问题内容: 我有以下JavaScript代码: 我如何确保仅在完成后调用? 问题答案: 指定一个匿名回调,并使function1接受它:

  • 使用上面的代码片段,是否可以测试忽略调用IgnoreCall的方法。ignoreMethod(Bean)而不需要将整个语句置于布尔条件下? 以下是单元测试代码片段: 注意事项: 重构。即使是糟糕的OO设计,重构也是代价高昂的 方法签名被锁定,除非另一个模式适用于替换 尝试使用Mockito。当和PowerMockito时。在目标静态方法上执行时,存根在运行时调试上不起作用