博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对ajax请求的简单封装,操作更方便
阅读量:5122 次
发布时间:2019-06-13

本文共 3908 字,大约阅读时间需要 13 分钟。

我这里的接口数据调用的js叫interface.js,接口路径管理的js叫webSiteControl.js
/**  * Created by l2776 on 2017/7/11.  * 接口数据调用  * version 1.3  */ 'use strict'; define(function(require, exports, module) {
"require:nomunge,exports:nomunge,module:nomunge"; var reqTimeStart = window.setTimeout(function (data) {
console.log("正在加载中"+data); },1000); function CheackJSON(data) {
try{
var CheckJSONParseData = JSON.parse(data); return 'application/json;charset=utf-8'; }catch(e){
return 'application/x-www-form-urlencoded'; } } function AjaxReport(data) {
var newInfoRequare = {}; newInfoRequare = data; newInfoRequare.randomIf?newInfoRequare.requestData['rdm'] = Math.random():""; $.ajax({
url: newInfoRequare.interfaceName?Add.GetInterfaceSite(newInfoRequare.interfaceName):false, data: newInfoRequare.requestData, type: newInfoRequare.requestType, timeout: newInfoRequare.timout, dataType:"JSON", contentType:CheackJSON(newInfoRequare.requestData), async:true, success: function (result) {
result.errorCode=='03'?require.async('./ReloginFunction.min',function (a) {
a.Relogin('zewei',newInfoRequare); }):newInfoRequare.callback(result); }, error: function (xhr, status) {
require.async(['./ErrFun','./InfeErrFuntion'],function (a,b) {
navigator.onLine?a.Toset('网络错误,请重新请求!!'):a.Toset('接口请求有误'); b.getErrInterfaceMsg(newInfoRequare.interfaceName,xhr); }); }, complete: function (xhr, status) {
window.clearTimeout(reqTimeStart); } }); } var Add = require('./webSiteControl'); exports.getDataFromServer = function(){
var InfoRequare = {}; InfoRequare.interfaceName = arguments[0] || false;//接口名称(必填),不填报错 InfoRequare.requestData = arguments[1] || {};//请求参数对象,默认为空对象 InfoRequare.callback = arguments[2]||"" ;//回调地址,会带数据一起返回,默认为空 InfoRequare.requestType = arguments[3] || "GET";//请求方式默认GET InfoRequare.randomIf = arguments[4] || false ;//接口是否需要缓存默认不需要 InfoRequare.timout = arguments[5] || 60000;//超时判定 new AjaxReport(InfoRequare); } }); 写在外部,在页面上调用即可。其中var Add = require('./webSiteControl');是调用的另一个同级webSiteControl.js,代码如下:
/**  * Created by l2776 on 2017/7/11.  * 接口路径管理  * version 1.0  */ 'use strict'; define(function(require, exports, module) {
"require:nomunge,exports:nomunge,module:nomunge"; exports.GetInterfaceSite = function (interfaceName) {
var ishttps = 'https:' == document.location.protocol ? true: false;//判定对象是否是SSL加密传输 var SiteHead = function(data){
if(data.indexOf('mg/')>=0 || data == 'BannerInfo/BusinessBannerInfo'){
return '/ypm/' }else{
return '/queryInfo/' } }; if(ishttps){
return 'https://'+window.location.host+SiteHead(interfaceName)+interfaceName; }else {
return 'http://'+window.location.host+SiteHead(interfaceName)+interfaceName; } } }); 因为我常用的接口都是ypm/mg/..和queryInfo/..开头的,所以这里你需要把你自己要调用的接口换上;或者再优化整合一下 事例:
/**  * Created by admin on 2017/7/11.  */
define(function (require, exports, module) {
var ind = require("../interface");   ind.getDataFromServer('mg/selectOrgCollections', "", getSelectInfo, "GET", true);   function getSelectInfo(data) {
    //回调函数   }
}) 虽然封装的时候很写的很多,但是以后再用到ajax只需要调用一下即可,再也不用写那么多了,而且有利于代码优化复用
$.ajax({
type: "GET", url: "test.json", data: {}, dataType: "json", success: function () {
} });

转载于:https://www.cnblogs.com/jrg-Archer/p/7154082.html

你可能感兴趣的文章
Update Bits
查看>>
jira与readmine区别
查看>>
[原创]-bash: iostat: command not found解决办法
查看>>
flask-blueprint的简单使用
查看>>
iOS程序的完整启动过程(有storyboard)
查看>>
js5:框架的使用,使框架之间无痕连接
查看>>
SQL/LINQ/Lamda
查看>>
NodeJS: 处理request网页乱码问题
查看>>
processing 根据物体移动方向改变朝向
查看>>
Centos: Screen tips
查看>>
Apache和nginx 域名配置
查看>>
VMbo下用ghost安装xp或者win7的方法 By ACReaper
查看>>
python学习笔记系列----(四)模块
查看>>
js窗口跳转方式
查看>>
Retinex图像增强算法
查看>>
11、【设计模式】构建器模式
查看>>
一:函数的基础知识
查看>>
CodeForces - 589J(DFS)
查看>>
Lua1.0 写在最初
查看>>
异常处理
查看>>