赞
踩
- /**
- * @Ajax封装
- * 执行基本ajax请求,返回XMLHttpRequest
- * $Ajax.request({
- * url
- * async 是否异步 true(默认)
- * method 请求方式 POST or GET(默认)
- * data 请求参数 (键值对字符串)
- * success 请求成功后响应函数,参数为xhr
- * error 请求失败后响应函数,参数为xhr 11
- * });
- */
- let $Ajax = function() {
- let _onStateChange = (xhr, success, failure) => {
- if (xhr.readyState === 4) { // 请求已完成,且响应已就绪
- let _s = xhr.status; // 状态码
- if (_s >= 200 && _s < 300) {
- success(xhr); //
- } else {
- failure(xhr);
- }
- } else {}
- };
- let request = (opt) => {
- let _fn = () => {};
- let _url = opt.url || ''; // 获得url
- let _async = opt.async !== false,
- _method = opt.method || 'GET',
- _data = opt.data || null,
- _success = opt.success || _fn,
- _error = opt.failure || _fn;
- _method = _method.toUpperCase(); // 默认都转换大写
- if (_method === 'GET' && _data) {
- let _args = '';
- if (typeof _data === 'string') {
- _args = _data;
- } else if (typeof _data === 'object') {
- let _arr = new Array();
- for (let _k in _data) {
- let _v = _data[_k];
- _arr.push(_k + '=' + _v);
- }
- _args = _arr.join('&');
- }
- _url += (_url.indexOf('?') === -1 ? '?' : '&') + _args;
- _data = null;
- }
- // var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveObject('Microsoft.XMLHTTP');
- let _xhr = window.XMLHttpRequest ? new XMLHttpRequest() : '';
- _xhr.onreadystatechange = () => { // 当请求被发送到服务器时,需要执行一些基于响应的任务
- _onStateChange(_xhr, _success, _error);
- };
- _xhr.open(_method, _url, _async); // 创建一个请求,并准备向服务器发送
- if (_method === 'POST') { // 如果是POST请求的时候,需要添加个请求消息头
- _xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;');
- }
- _xhr.send(_data); // 向服务器发送请求
- return _xhr;
- };
- return {
- request: request
- };
- }();
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。