zoukankan      html  css  js  c++  java
  • Javascript下的AJAX

          /**   
          * 执行基本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
              };
          }();

  • 相关阅读:
    撤销git reset
    vue diff,react diff算法
    了解下domparser方法
    css中的BFC和IFC
    浏览器输入URL后发生了什么
    几种图片滤镜算法代码实现(灰度、浮雕、二值、底片)
    python--记python输入多行
    chrome添加 postman扩展程序图文简介
    火狐浏览器插件--HttpRequester接口测试
    python爬虫--一次爬取小说的尝试
  • 原文地址:https://www.cnblogs.com/lwyu/p/5407555.html
Copyright © 2011-2022 走看看