Reg*_*yes 6 javascript internet-explorer reactjs axios
我有一个函数,每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
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
Dan*_*rei 15
我在InternetExplorer上遇到了类似的问题(尽管使用了fetch)(11,Edge)用于轮询服务.我发现使用"Pragma:no-cache"标头解决了它.
你可以尝试一下:
const config = {
headers: { Pragma: 'no-cache'},
params: { id: this.state.taskID }
}
Run Code Online (Sandbox Code Playgroud)
电话应该是这样的:
axios.get(url.CHECK_UPLOAD_TASK, config).then(...)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3888 次 |
| 最近记录: |