JavaScript:网络请求工具库AjaxTool.js
(function () {function AjaxTool() {}AjaxTool.ajaxRequest = function(params,successCallback, failedCallback){// 1. 获取参数var requestType = params['requestType'] || 'get'; //请求方式var url = params['url']; // 请求路径var paramObj = params['paramObj']; // 传递参数var timeOut = params['timeOut'] || 0; // 请求时长// 2. 发送请求var xhr = new XMLHttpRequest();// 判断if(requestType.toLowerCase()=== 'get'){// get 请求// 使用encodeURI 函数可把字符串作为 URI 进行编码。增加健壮性var codeUrl = encodeURI(url+'?'+getStrWithObject(paramObj));xhr.open('get',codeUrl,true);xhr.send();}else if(requestType.toLowerCase()=== 'post'){// post 请求var codeParam = encodeURI(getStrWithObject(paramObj));xhr.open('post',url,true);// 设置请求头xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');xhr.send(codeParam);}xhr.addEventListener('readystatechange',function (ev) {if (xhr.readyState === 4){if (xhr.status === 200){// 请求成功successCallback && successCallback(xhr);// 清除定时器clearTimeout(timer);}else{// 请求失败failedCallback && failedCallback(xhr);}}// 0代表不限制请求时长var timer =null;if (timeOut > 0){timer = setTimeout(function () {// 取消请求xhr.abort();},timeOut);}})};/*** 把对象转换为拼接字符串* @param {Object}paramObj*/function getStrWithObject(paramObj){var resArr = [];// 1. 转化对象for (var key in paramObj){var str = key + '=' + paramObj[key];resArr.push(str);}// 2. 拼接时间戳resArr.push('random='+getRandomStr());// 3. 数组转成字符串return resArr.join('&');}/*** 生成随机时间戳* @returns {number}*/function getRandomStr(){return Math.random() + (new Date().getTime());}window.AjaxTool = AjaxTool;
})(window);
JavaScript:网络请求工具库AjaxTool.js相关推荐
- 网络请求urllib库使用总结
网络请求urllib库使用总结 目录 网络请求urllib库使用总结 1.概述 2.Urllib库基本使用 2.1.Urllib库快速上手 1.完成一次简单的get请求 2.read()函数介绍 3. ...
- request 网络请求工具
/*** request 网络请求工具* @Doc: https://github.com/umijs/umi-request*/ import { clearAuthority } from '@/ ...
- python网络爬虫工具库集合
经常逛 GitHub 的同学可能会听说过大名鼎鼎的 awesome 仓库,没错,就是这个:https://github.com/sindresorhus/awesome. 这个库可谓是一个极大的宝藏, ...
- Flutter网络请求Dio库的使用及封装
Dart语言内置的HttpClient实现了基本的网络请求相关的操作.但HttpClient本身功能较弱,很多网络请求常用功能都不支持,因此在实际项目中,我们更多是使用dio库实现网络请求. 注:Fl ...
- Flutter开发之HTTP网络请求:dio库(28)
dio是Flutter中文网开源的一个强大的Dart Http请求库,支持Restful API.FormData.拦截器.请求取消.Cookie管理.文件上传/下载.超时等- 第三方库 dio实现g ...
- 工具库 --- Validator (JS正则)
工具库 --- Validator 今天写的是一个正则验证类 单例模式 工具库地址:github.com/WeForStudy/- npm地址:www.npmjs.com/package/slm- 单 ...
- 基于HttpURLConnection 网络请求工具类的封装
HttpUtils: /*** Created by xiaoyehai on 2018/5/21 0021.*/public class HttpUtils {//线程池private static ...
- 网络请求urllib库的基本使用 ----------python的爬虫学习
简单的网络请求: from urllib import request url = "http://www.baidu.com" rep=request.urlopen(url) ...
- JavaScript数字运算必备库——big.js源码解析
概述 在我们常见的JavaScript数字运算中,小数和大数都是会让我们比较头疼的两个数据类型. 在大数运算中,由于number类型的数字长度限制,我们经常会遇到超出范围的情况.比如在我们传递Long ...
- java okhttp3 工具类,Retrofit+okhttp+Rxjava网络请求工具类
1.BaseApis接口封装请求方式 package com.example.wdshop.network; import java.util.Map; import okhttp3.Response ...
最新文章
- 如何利用 C# 实现神经网络的感知器模型?
- Debian 系统初体验
- Cisco和H3C的两种不同动态***解决方案
- MySQL数据库az排序_RDS Mysql Single-AZ和Multi-AZ性能差异
- 1362. 健康的荷斯坦奶牛【难度: 一般 / 二进制枚举】
- 机器学习实战(python)-Ch02KNN-Notes
- python 如何边改代码边调试_Python 代码调试神器:PySnooper
- 生产环境运行Docker的9个关键决策
- 运算放大器基本公式_跨阻放大器稳定性
- 关于Cocos2d-x的粒子系统
- macos安装vscode_什么!你还没有安装Flutter!
- hdu1829 A Bug's Life
- SPSS新手教程—两步聚类之结果解读
- vue.js毕设项目利器,路过给个star
- ios备忘录下载安卓版_iOS8备忘录
- Android文字转语音播报
- 细胞迁移 | cell migration
- (转)国内外优秀的Web前端工程师
- 信息搜集之CDN知识
- PNP型三极管是不是要发射极接正电压,基极和集电极接地才能工作?能给张图不?