Ajax参数API参考:https://www.w3school.com.cn/jquery/ajax_ajax.asp
方式一
设置时间超过,断开请求连接
/**
* ajax接口----------------------------------------------------------------------------
* @param url 请求路径
* @param data 请求参数
* @param type 请求方式
* @param callbak 成功回调
* @param dataType 返回格式类型
* @returns
*/
function getAjax(url, data, type, callbak, dataType){
var ajaxObj = $.ajax({
url: url, // 请求的URL
timeout: 1000*10, // 超时时间设置,单位毫秒
type : type || 'get', // 请求方式,get或post
data: data, // 请求所传参数,json格式
dataType: dataType || 'json',// 返回的数据格式
success: function(res){ // 请求成功的回调函数
if(callbak){// 回调返回值
callbak(res);
}
},
complete: function(XMLHttpRequest, status){ // 请求完成后最终执行参数
if(status == 'timeout'){// 超时, status 还有 success, error等值的情况
ajaxObj.abort(); // 关闭ajax请求
if(callbak){// 回调提示
callbak({success: false, msg: "操作失败,接口请求超时!"});
}
}else if(status == 'error'){// 超时, status 还有 success, error等值的情况
ajaxObj.abort(); // 关闭ajax请求
if(callbak){// 回调提示
callbak({success: false, msg: "操作失败,接口请求错误!"});
}
}
}
});
}
方式二
请求延迟提示,非断开连接
var AJAX={
contentType:{
JSON:"application/json;charset=UTF-8",
FORM:"application/x-www-form-urlencoded"
}
}
/**
* ajax请求封装函数-----------------------------------------------------------------------
*
* @param d 请求参数对象
*/
function ajax(d) {
layui.use("layer", function () {
var layer = layui.layer, index;
$.ajax({
url: (function () { // 使用立即执行函数
if (d.url.indexOf("?") != -1) {
return d.url + "&_=" + $.now()
} else {
return d.url + "?_=" + $.now()
}
})(),
type: d.type || "GET",
dataType: d.dataType || "JSON",
data: (function () {
if (d.isJSON !== undefined && d.isJSON) {
return JSON.stringify(d.params) || {}
}
return d.params || {}
})(),
async: d.async || true,
beforeSend: d.beforeSend || function () {// 发送请求
index = layer.load(1, {time: 10 * 1000, shade: [0.01, '#ffffff']}, function () {
console.log("服务请求延迟过大...当前超时时间为10S");
});
},
contentType: d.contentType || AJAX.contentType.JSON,
success: function (r) { // 请求成功
d.success.call(this, r);
},
error: function (e) {// 请求错误
let json = JSON.parse(e.responseText);
if (json.success){
d.success.call(this, json);
}else {
layer.msg("请求异常!");
}
if (index != undefined) {
layer.close(index);
}
},
complete: d.complete || function () {// 请求完成
if (index != undefined) {
layer.close(index);
}
}
})
});
}
版权声明:本文为weixin_43992507原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。