博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript下的AJAX
阅读量:6907 次
发布时间:2019-06-27

本文共 1382 字,大约阅读时间需要 4 分钟。

      /**   

      * 执行基本ajax请求,返回XMLHttpRequest   
      *  Ajax.request({   
      *  url
      *  async 是否异步 true(默认)  
      *  method 请求方式 POST or GET(默认)  
      *  data 请求参数 (键值对字符串)  
      *  success 请求成功后响应函数,参数为xhr  
      *  error 请求失败后响应函数,参数为xhr  
      *  });   
      */   
      Ajax = function() {
          function request(opt) {
              function fn() {
              }
              var url = opt.url || "";
              var 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) {
                  var args = "";
                  if(typeof data == 'string'){
                      //alert("string")
                      args = data;
                  }else if(typeof data == 'object'){
                      //alert("object")
                      var arr = new Array();
                      for(var k in data){
                          var v = data[k];
                          arr.push(k + "=" + v);
                      }
                      args = arr.join("&");
                  }
                  url += (url.indexOf('?') == -1 ? '?' : '&') + args;
                  data = null;
              }
              var xhr = window.XMLHttpRequest ? new XMLHttpRequest()
                      : new ActiveXObject('Microsoft.XMLHTTP');
              xhr.onreadystatechange = function() {
                  _onStateChange(xhr, success, error);
              };
              xhr.open(method, url, async);
              if (method == 'POST') {
                  xhr.setRequestHeader('Content-type',
                          'application/x-www-form-urlencoded;');
              }
              xhr.send(data);
              return xhr;
          }
          function _onStateChange(xhr, success, failure) {
              if (xhr.readyState == 4) {
                  var s = xhr.status;
                  if (s >= 200 && s < 300) {
                      success(xhr);
                  } else {
                      failure(xhr);
                  }
              } else {
              }
          }
          return {
              request : request
          };
      }();

转载于:https://www.cnblogs.com/lwyu/p/5407555.html

你可能感兴趣的文章
如何让 protected internal 跨程序集!
查看>>
结对编程作业总结2
查看>>
2018-2019-1 20165231 《信息安全系统设计基础》第七周学习总结
查看>>
转 10 个最佳的 Node.js 的 MVC 框架
查看>>
Linux学习笔记(六)-Linux服务程序的安装和卸载
查看>>
转 @JoinColumn 详解
查看>>
mysql 主从复制
查看>>
详解C/C++预处理器
查看>>
阿里云OSS图片上传plupload.js结合jq-weui 图片上传的插件
查看>>
随机产生id字符串
查看>>
(十七)SpringBoot之使用异步消息服务jms之ActiveMQ
查看>>
第19讲 | 上手搭建一条自己的智能合约
查看>>
Matlab绘制空间几何图
查看>>
在Node.js上搭建React.js开发环境
查看>>
常州大学新生寒假训练会试 题解
查看>>
ASCII,Unicode和UTF-8
查看>>
性能指标术语&理发店模型
查看>>
【几个关于CSS的网站】
查看>>
【转】python 2.6.6升级到python 2.7.x版本的方法
查看>>
MySQL日志
查看>>