zoukankan      html  css  js  c++  java
  • 封装ajax

     1 //封装ajax
     2 function ajax(obj) {
     3     var xhr = (function () {
     4         if (typeof XMLHttpRequest != 'undefined') {
     5             return new XMLHttpRequest();
     6         } else if (typeof ActiveXObject != 'undefined') {
     7             var version = [
     8                                         'MSXML2.XMLHttp.6.0',
     9                                         'MSXML2.XMLHttp.3.0',
    10                                         'MSXML2.XMLHttp'
    11             ];
    12             for (var i = 0; version.length; i ++) {
    13                 try {
    14                     return new ActiveXObject(version[i]);
    15                 } catch (e) {
    16                     //跳过
    17                 }    
    18             }
    19         } else {
    20             throw new Error('您的系统或浏览器不支持XHR对象!');
    21         }
    22     })();
    23     obj.url = obj.url + '?rand=' + Math.random();
    24     obj.data = (function (data) {
    25         var arr = [];
    26         for (var i in data) {
    27             arr.push(encodeURIComponent(i) + '=' + encodeURIComponent(data[i]));
    28         }
    29         return arr.join('&');
    30     })(obj.data);
    31     if (obj.method === 'get') obj.url += obj.url.indexOf('?') == -1 ? '?' + obj.data : '&' + obj.data;
    32     if (obj.async === true) {
    33         xhr.onreadystatechange = function () {
    34             if (xhr.readyState == 4) {
    35                 callback();
    36             }
    37         };
    38     }
    39     xhr.open(obj.method, obj.url, obj.async);
    40     if (obj.method === 'post') {
    41         xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    42         xhr.send(obj.data);    
    43     } else {
    44         xhr.send(null);
    45     }
    46     if (obj.async === false) {
    47         callback();
    48     }
    49     function callback() {
    50         if (xhr.status == 200) {
    51             obj.success(xhr.responseText);            //回调传递参数
    52         } else {
    53             alert('获取数据错误!错误代号:' + xhr.status + ',错误信息:' + xhr.statusText);
    54         }    
    55     }
    56 }
  • 相关阅读:
    CentOS7 FTP安装与配置
    linux CentOS 安装 nginx
    linux CentOS YUM 安装 nginx+tomcat+java+mysql运行环境
    Node.js 开发
    Nginx 负载均衡
    BtxCMS.Net 项目
    不得不看!史上最全的三十多张架构师图谱!
    高危群体:开发者的自白,躲坑,迷茫,和下一步
    p2p-如何拯救k8s镜像分发的阿喀琉斯之踵
    Tower与DevCloud对比分析报告
  • 原文地址:https://www.cnblogs.com/wanqiu/p/4456326.html
Copyright © 2011-2022 走看看