这个JS函数应该怎么封装???
Ajax请求一:
$.ajax({
url: "/api/address/update",
type: "POST",
dataType: 'json',
data: "addressId="+addressId+"&name="+$('#person_editor').val()+"&telephone="+$('#telephone_editor').val()+"&phone="+$('#phone_editor').val()+"&postCode="+$('#postcode_editor').val()+"&area=&address="+$('#address_editor').val()+"&isDefault="+isDefault_editor+"&"+csrf_param+"="+csrf_token,
success: function (result) {
switch (result.ret) {
case 0:
location.reload();
break;
default:
showMessage(result.msg);
}
}, error: function () {
showMessage("服务器异常!");
}
});
Ajax请求二:
$('.addrlist li').click(function () {
$.ajax({
url: "/api/address/view",
type: "POST",
dataType: 'json',
data: "addressId="+this.id+"&"+csrf_param+"="+csrf_token,
success: function (result) {
switch (result.ret) {
case 0:
$('#person_editor').val("" + result.data.name + "");
$('#telephone_editor').val("" + result.data.telephone + "");
$('#phone_editor').val("" + result.data.phone + "");
$('#postcode_editor').val("" + result.data.postcode + "");
$('#address_editor').val("" + result.data.address + "");
if (result.data.isDefault == "Y")
{
window.isDefault = true;
$('#isDefault_editor').attr("class", "ischeck");
}
else
{
window.isDefault = false;
$('#isDefault_editor').attr("class", "nocheck");
}
break;
default:
showMessage(result.msg);
}
}, error: function () {
showMessage("服务器异常!");
}
});
Ajax请求三:
$.ajax({
url: "/api/user/register",
type: "POST",
dataType: "json",
data: "usrMp="+phoneNo+"&loginPwd="+password+"&smsCode"+erification+"&usrEmail"+emailAddr+"&"+csrf_param+"="+csrf_token,
success: function (result) {
if (result.ret != 0) {
showMessage(result.msg);
return false;
} else {
showMessage("注册成功,请到登录界面使用您的账号登录!");
setTimeout(function () {
window.location.href = "login";
}, 2000);
}
}, error: function () {
showMessage("服务器异常!");
return false;
}
});
return true;//ajax取消注释,这句需要取消
}
这样的Ajax请求怎样才能封装为通用的一个方法,放到Common.js里面,供其它js调用。 比如“register.js,login.js,order.js”等。
我的思路是:函数的参数是“url”、“data”、“dataType”、"type:"、"success”回调函数、“error回调函数“
有几个问题:
一、传入了那么多参数的话,感觉函数和没封装的时候没什么不同的??? 是不是应该将共同的参数写死,这样才好维护。
二、success:后面传入函数,函数应该有result参数,这个函数应该怎么写??? 这个函数应该写在页面对应的js里面吧。
三、“error”函数应该怎么写???
四:有木有大神帮忙封装下,怎么封装结构才比较好??? 现在有好多页面的JS脚本文件都会用到Ajax请求,为了方便维护和修改,应该怎么封装???