Appearance

全局异步请求函数

全部接口参数

$ajax.post({
	url:null,//请求地址
	data : null,//请求数据
	tip : false,//提交是否需要确认,true或string需要确认
	jsonData : false,//是否采用jsonData格式提交
	sync : false,//是否同步方式提交
    jsonp : false,//默认非jsonp格式
	type : 'post',//采用post方式提交
	loadingBar : true,//loading进度条
	loadingMask : true,//进行异步请求中,是否显示mask
	calltip : true,//提交成功后显示请求成功信息
	success : function(rst){},//请求成功后,code===200或者201返回事件
	callback : function(rst){},//请求成功后返回事件
	cancelback : function(){},//确认框点取消返回事件
	errback : function(req, textStatus, errorThrown){}//出现错误时返回事件
 });

说明

$ajax.post 二次封装了异步请求,主要加入了以下交互:

  • 请求时会有一个加载等待显示
  • 请求成功会返回成功提示,可自定义提示信息
  • 失败会弹窗提示失败原因,可自定义提示信息(除请求失败)
  • 可选择提示确认后再请求
  • 默认发送formData到后台,可以选择发送json格式 (jsonData: true)
  • 确定是否是同步请求

注意

所有异步请求方法做全局拦截,返回状态码 500 或者 返回json { code: '500',msg: '错误提示信息!' } 都会全局拦截认为是报错。

简易模式

// url : 请求地址
// data : 请求数据
// tip :  布尔值或字符串,是否提示确认后再发起请求
// isJsonData : 是否是json格式(默认是formData)
// sync : 是否是同步请求(默认异步)
// callTip : 补丁参数,提示确认时是否需要返回提示,为true不提示
$ajax.post(url, data, tip, isJsonData,sync,callTip).done(function(rst){
	//
});

自由模式

// url : 请求地址
// data : 请求数据
// tip :  布尔值或字符串,是否提示确认后再发起请求
// isJsonData : 是否是json格式(默认是formData)
// sync : 是否是同步请求(默认异步)
// callTip : 补丁参数,提示确认时是否需要返回提示,为true不提示
$ajax.post(url, data,{jsonData:true,tip:'您是否提交吗?',loadingMask:false,success:function(rst){
//返回处理
}});

$ajax.post(url, data,{jsonData:true,tip:false}).done(function(rst){
//返回处理
});

衍生的同步模式

$ajax.postSync(url, data, tip, isJsonData).done(function(rst){//同步模式
//返回处理
});

请求的标准返回

和后端约定,除数据表格及特殊的组件外,采用标准格式返回请求如下:

//请求成功示例:
{
  "code":'200',//200表示请求成功,注意这里是字符串非数字,并使用前台默认提示,201表示请求成功用后台自定义提示
  "msg":"",//200的请求使用的提示信息
  "ohter":"other"//其余属性
}
//请求失败示例:
{
  "code": '500',//业务失败
  "msg":"对不起您没有操作权限!"//自定义提示
  "ohter":"other"//其余属性
}

全部代码示例

//完整版
$ajax.post({
	url : '/op.jhtm',
	data : { id: hospitalid },
    jsonData: true,//采用json方式发送数据,默认是formData
	tip : '是否确认此操作?',
	success : function(rst){
		//success里是code === '200' 或者 '201'才执行的事件,如果使用非标json结构请使用 callback方法
		console.log(rst);
	},
	cancelback : function(){//确认框点取消返回事件
		console.log('点击了取消按钮');
	},
    errback: function(req, textStatus, errorThrown){
        console.log(req);
    }
});

//简易版
$ajax.post('/delete.jhtml',{ id: hospitalid },'是否确认删除选择的记录?').done(function (rst) {
  if(rst.code==='200'){
    ...
  }else{
     layer.msg('您不是该医院筹备负责人,不能操作该医院!', {icon: 0});//提示框提示
  }
});

//发送json数据,第一个true表示需要提示确认,第二个true表示是发送复杂json到后台,第三个true表示是一个同步请求
$ajax.post('json/true.js',JSON.stringify(changetData),true,true,true).done(function (rst) {
//JSON.stringify()这个括号可以不写
    if (rst.code==='200'||rst.code==='201') {
        $grid.datagrid('reload');
    };
});

//没有数据,有提示信息
$ajax.post('/update.jhtml',null,'是否提交此操作?').done(function (rst) {
    ...
});

//只有请求地址
$ajax.post('/url.jhtml').done(function (rst) {
    ...
});

//同步请求
$ajax.postSync('/url.jhtml').done(function (rst) {
    ...
});