window.ajaxJsonp=function(params) {
params = params || {};
params.data = params.data || {};
var json = params.jsonp ? jsonp(params) : json(params);
// jsonp请求
function jsonp(params) {
//创建script标签并加入到页面中
var callbackName = params.jsonp;
var head = document.getElementsByTagName('head')[0];
// 设置传递给后台的回调参数名
params.data['callback'] = callbackName;
var data = formatParams(params.data);
var script = document.createElement('script');
head.appendChild(script);
//创建jsonp回调函数
window[callbackName] = function(json) {
head.removeChild(script);
clearTimeout(script.timer);
window[callbackName] = null;
params.success && params.success(json);
};
//发送请求
script.src = params.url + '?' + data;
//为了得知此次请求是否成功,设置超时处理
if(params.time) {
script.timer = setTimeout(function() {
window[callbackName] = null;
head.removeChild(script);
params.error && params.error({
message: '超时'
});
}, time);
}
};
//格式化参数
function formatParams(data) {
var arr = [];
for(var name in data) {
arr.push(encodeURIComponent(name) + '=' + encodeURIComponent(data[name]));
};
// 添加一个随机数,防止缓存
arr.push('v=' + random());
return arr.join('&');
}
// 获取随机数
function random() {
return Math.floor(Math.random() * 10000 + 500);
}
}

  

最新文章

  1. iOS 打电话 发短信(转载)
  2. 从头安装及配置PL/SQL Developer
  3. POJ 2386 Lake Counting(深搜)
  4. C++_Eigen函数库用法笔记——Matrix and Vector Arithmetic
  5. UESTC 2016 Summer Training #1 Div.2
  6. python 的 class
  7. 【转】linux dumpe2fs命令
  8. Shell变量之自定义变量、环境变量
  9. jquery 单击li防止重复加载的实现代码
  10. Java创建对象的4种方式?
  11. 扫描soa并输出所有服务方法
  12. create pfile from spfile;
  13. win10 uwp 列表模板选择器
  14. nsqd.go
  15. python全栈开发中级班全程笔记(第二模块、第三章)(员工信息增删改查作业讲解)
  16. git与github工具使用
  17. pycharm2018.3版 永久激活
  18. java 中自定义类的概述
  19. 【转】C语言中字符串输入的三种方法
  20. RESTORE 无法处理数据库 'Students',因为它正由此会话使用。建议在执行此操作时使用 master 数据库。

热门文章

  1. magento getUrl函数跳转admin模块问题
  2. 牛客网-3 网易编程题(1拓扑&2二叉树的公共最近祖先&3快排找第K大数)
  3. EasyUI系列学习(十)-Tabs(选项卡)
  4. 3122 奶牛代理商 VIII
  5. cocos2dx在windows下搭建环境android报错
  6. 一个完整的网站记录(springmvc hibernate juery bootstrap)
  7. STA之Concepts (1)
  8. MySql学习笔记(三) —— 聚集函数的使用
  9. Windows提高_1.4进程通信
  10. 数据类型对应字节数(32位,64位 int 占字节数)