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

    1. /**
      * Created by liyinghao on 2016/8/23.
      */
      /*仿jQuery中的ajax方法,简单版实现;封装ajax的工具函数*/
      /*
      * 1 请求方式 type get post 默认是get方式
      * 2.接口地址 url 都是地址 默认的是当前地址
      * 3.是否异步 async true false 默认的true 异步请求
      * 4.请求数据 data {}对象形式 默认是空对象
      *
      *
      * 5.成功回调函数(成功需要做的事情) success
      * 6.失败回调函数(失败需要做的事情) error
      *
      * 比如 发送前要做的事情 beforeSend
      * */
      window.$ ={
      /* ajax:function(){
      }*/
      };
      /*定义一个ajax工具函数*/
      /*options 是一个对象*/
      $.ajax =function(options){
      /*如果你什么都没传呢?停止执行*/
      /*if(options && typeof options == 'object'){
      }*/
      if(!options ||typeof options !='object')return fasle;
      /*如果传了*/
      var type = options.type ||'get';
      var url = options.url || location.pathname;
      /* false true "" false */
      var async = options.async ===false?false:true;
      /*需要传递的数据*/
      var data = options.data ||{};
      /*需要data转化成ajax传递数据的格式 {name:'',age:''} ===>>> name=gc&age=10 */
      var dataStr ='';
      for(key in data){
      dataStr += key+'='+data[key]+'&';
      };
      /*str.slice(0,-1); 取到倒着数几个字符*/
      dataStr = dataStr && dataStr.slice(0,-1);
      /*ajax编程*/
      /*初始化*/
      var xhr =newXMLHttpRequest();
      /*设置请求行*/
      /*如果是get请求 参数是不是该拼接在url后面*/
      xhr.open(type,type=='get'?url+'?'+dataStr:url,async);
      /*设置请求头*/
      if(type =='post'){
      xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
      }
      /*设置请求内容*/
      xhr.send(type=='get'?null:dataStr);
      /*响应*/
      xhr.onreadystatechange =function(){
      /*首先确定通讯完全完成*/
      if(xhr.readyState ==4){
      /*如果是成功的请求 status == 200 */
      if(xhr.status ==200){
      /*成功*/
      /*知道后台想要返回什么数据类型 application/json;charset=utf-8*/
      /*application/xml application/json text/html text/xml text/json text/css*/
      var contentType = xhr.getResponseHeader('Content-Type');
      var result =null;
      if(contentType.indexOf('xml')>-1){
      /*返回什么数据类型xml*/
      result = xhr.responseXML;
      }elseif(contentType.indexOf('json')>-1){
      /*返回什么数据类型json*/
      var data = xhr.responseText;
      result = data && JSON.parse(data);
      }else{
      result = xhr.responseText;
      }
      /*执行成功回调函数*/
      options.success && options.success(result);
      }else{
      /*失败*/
      options.error && options.error({status:xhr.status,statusText:xhr.statusText});
      }
      }
      }
      };
      /*get*/
      $.get=function(options){
      options.type ='get';
      $.ajax(options);
      }
      /*post*/
      $.post =function(options){
      options.type ='post';
      $.ajax(options);
      }
      
      
      
      
      来自为知笔记(Wiz)
      

        

  • 相关阅读:
    c#中使用log4net工具记录日志
    由命名空间函数而引发思考--js中的对象赋值问题
    浅析C#中的Attribute[转]
    剑指offer_输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果
    剑指offer_输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径
    剑指offer_输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字
    HashSet TreeSet 中元素顺序问题(未解决)
    找出某个String中出现次数最多的字符,并输出次数(字符较长)
    MyBatis、JDBC、Hibernate区别
    String.equals用法注意
  • 原文地址:https://www.cnblogs.com/itlyh/p/6031362.html
Copyright © 2011-2022 走看看