前端中断请求

Axios篇

axios默认使用的content-type是application/json,
方法一:设置超时时间
方法二:axio提供了一个一个CancelToken的函数,用来取消接口请求
1.首先,先定义cancel变量

data:{
	cancel:null}

2.在函数中运用

let CancelToken = axios.CancelToken
let that = this
axios({
method:"",
url:"",
cancelToken:new CancelToken(function executor(a){
	that.cancel =  a
 // 这个参数 a 就是CancelToken构造函数里面自带的取消请求的函数,
	})
}).then(res=>{}).catch(error=>{})

3.在某个函数中执行取消请求

funA(){
	this.cancel()
}

Ajax篇

方法一:同样是设置超时时间让Ajax自动断开
方法二:手动停止,调用XMLHttpRequest对象上的Abort方法

var ajax1 = $.ajax({

})

调用

ajax1.abort()

注意:不要用abort方法来作为终止对服务器的请求操作,只能当做在前端页面立刻停止执行ajax成功后的方法,因为你执行abort方法后,ajax很可能已经对服务端发送了请求,只是还未返回回馈信息而已。

原生Javascript

var xmlHttp = new XMLHttpRequest()
xmlHttp.open("method","url","async")
xmlHttp.onreadystatechange = function(){
//得到响应之后的操作
}
xmlHttp.send()
//设置几秒钟时候检查发送的数据是否得到响应
setTimeout("check()",2000)
//检查xmlHttp对象所发送的数据是否得到响应
function check(){
//为4时代表请求完成了
if(xmlHttp.readyState !=4){
//响应超时,关闭请求
xmlHttp.close()
}}

或者使用abort

ver xhr = new XMLHttpRequest()
xhr.open(....)
//调用
function A(){
		xhr.abort()
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值