再次封装ajax函数,统一入口
根据API写网页的时候,每个页面都需要ajax请求,每次都写一大堆请求,配置什么的太麻烦,于是打算封装一个ajax函数,统一调用:
开始时是使用return返回ajax,如下:
function createAjax(ajaxrequire) {
_url = ajaxrequire._urls;
_dataType = ajaxrequire._dataType;
_async = ajaxrequire._async
_method = ajaxrequire._method;
_data = ajaxrequire._data;
_data.token = token;
_data.device = 'weixin';
return $.ajax({
url: _url,
dataType: _dataType,
cache: false,
async: _async,
type: _method,
data: _data,
timeout:10000,
error:function(data){
mui.alert(data.msg);
}
});
}
在如下Ogoods变量中填好需要的参数内容,然后就可以直接调用了
var Ogoods = {
_urls:'api地址',
_data:{ },
_method:'post',
_dataType:'json',
_async:false
};
var data = JSON.parse(createAjax(Ogoods).responseText);
变量data中保存着ajax请求返回的数据,但是这个方法有个bug,就是不能使用异步,当 async为true时会报错,也不知道是不是只是我写的有问题,
于是考虑着还能不能用其他方式实现,嗯,写个回调函数应该就行了,
$packageAjax = function (ajaxrequire,callback) {
_url = ajaxrequire._urls;
_dataType = ajaxrequire._dataType;
_async = ajaxrequire._async
_method = ajaxrequire._method;
_data = ajaxrequire._data;
_data.token = token;
_data.device = 'weixin';
$.ajax({
url: _url,
dataType: _dataType,
cache: false,
async: true,
type: _method,
data: _data,
timeout:10000,
success:function(data){
callback(data);
},
error:function(data){
mui.alert(data.msg);
}
});
}
调用:
var Ogoods = {
_urls:'api地址',
_data:{ },
_method:'post',
_dataType:'json',
_async:true
};
$packageAjax(Ogoods,function(data){
//执行操作
})
这样ajax设为异步就没什么问题了,并且也不必每次都写配置选项了,很简单,却也实用。
再次封装ajax函数,统一入口的更多相关文章
- 轻松搞定Ajax(分享下自己封装ajax函数,其实Ajax使用很简单,难是难在你得到数据后来怎样去使用这些数据)
hey,guys!今天我们一起讨论下ajax吧!此文只适合有一定ajax基础,但还是模糊状态的同志,当然高手也可以略过~~~ 一.概念 Ajax(Asynchronous Javascript + X ...
- 使用promise手动封装ajax函数
最近在做一个单页应用,node和浏览器仅通过json传输数据,因为是只有自己用等于是锻炼一下自己,所以也不用考虑seo的问题,node端我已经写好了,但是浏览器端想要用ajax原生太麻烦,用封装的函数 ...
- 封装ajax函数
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> ...
- 使用jquery再次封装ajax
$.fn.ajaxSend = function (type, url, postdata, onSuccess) { $.ajax({ async: false, url: url, type: t ...
- 04.封装ajax
<script> //封装ajax // 函数名 ajax // 函数的参数 // url: 请求的地址 // type: 请求的方式 get /post // data: 要上传的数据 ...
- 原生JS封装ajax方法
http://blog.sucaijiayuan.com/article/89 jquery框架的ajax方法固然好用,但是假如某天我们的项目不能引入jquery或项目需求很简单,没有很多交互功能,只 ...
- 自封装ajax
项目中有时候用不到jq,需要了解xmlhttp原理,自己写一套函数请求和发送数据! /* 封装ajax函数 * @param {string}opt.type http连接的方式,包括POST和GET ...
- ajax 原生js封装ajax [转]
/* 封装ajax函数 * @param {string}opt.type http连接的方式,包括POST和GET两种方式 * @param {string}opt.url 发送请求的url * @ ...
- ajax的再次封装!(改进版) —— new与不 new 有啥区别?
生命不息重构不止! 上一篇写了一下我对ajax的再次封装的方法,收到了很多有价值的回复,比如有童鞋建议用$.extend,一开始还以为要做成插件呢,后来才知道,原来这个东东还可以实现合并.省着自己再去 ...
随机推荐
- PAT_A1055#The World's Richest
Source: PAT A1055 The World's Richest (25 分) Description: Forbes magazine publishes every year its l ...
- Django框架(七)—— 模板层:变量、过滤器、标签、自定义标签和过滤器
目录 模板层:变量.过滤器.标签.自定义标签和过滤器 一.模板层变量 1.语法 2.使用 二.模板层之过滤器 1.语法 2.常用过滤器 3.其他过滤器 三.模板值标签 1.for标签 2.if标签 3 ...
- 第三记 Java面向对象
相信很多人都有听到,见到这么一句话:Java是一门面向对象编程的语言,但是又是否对这句话有了自己的理解呢? 一.面向对象 面向对象是一种新兴的程序设计方法,也可以说是一种新的程序设计规范(paradi ...
- Web开发常规调试方法与常见问题分析
一.Web项目基本原理 现在的web项目大都已经前后端独立开发与部署. 前后端独立开发,一般是前端与后端通过web接口(常见的有RESTful与websocket)文档进行交流.前端开发人员先更具业务 ...
- while循环和for循环
while循环 n='我怎么那么可爱呀' count= while count<len(n): print(n[count]) count+= for循环 n='我怎么那么可爱呀' for i ...
- Linux 错误: $'\r': command not found
是linux无法解析$'\r'.这其实是windows与linux系统的差异导致的. 因为linux上的换行符为\n,而windows上的换行符为\r\n.所以脚本到linux上就无法解析了. 通常的 ...
- php 连接mysql 主机 localhost,显示 No such file or directory
打开 php.ini文件,找到这1行 mysql.default_socket 然后将它修改为 mysql.default_socket=/path/to/mysql.sock /path/to/my ...
- html标签注意事项
1,关于媒体的video标签 在同一个页面上如果有多个video标签,并且初始化都赋值,则video不会播放, 解决办法,用计时器每隔50ms给后面的video标签设置src,设置完为止 2,关于ch ...
- leetcood学习笔记-235-二叉搜索树的最近公共祖先
题目描述: 利用二叉搜索树的特点,如果p.q的值都小于root,说明p q 肯定在root的左子树中:如果p q都大于root,说明肯定在root的右子树中,如果一个在左一个在右 则说明此时的root ...
- leetcood学习笔记-169-求众数
题目描述: 方法一:排序输出中位数 class Solution(object): def majorityElement(self, nums): """ :type ...