美文网首页
js发起ajax代码

js发起ajax代码

作者: bug喵 | 来源:发表于2017-12-02 15:04 被阅读0次

    基础写法

    //Get
    var xml = new XMLHttpRequest();
    xml.open('get','XXXX.php?name=zhangsan&age=4');
    xml.send(null);
    xml.onreadystatechange = function () {
      if(xml.readySatete == 4 && xml.status ==200){
        // ···
      }
    }
    //Post
    var xml = new XMLHttpRequest();
    xml.open('post','XXXX.php');
    xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    xhr.send('name=fox&age=18');
    xml.onreadystatechange = function () {
      if(xml.readySatete == 4 && xml.status ==200){
        // ···
      }
    }
    

    封装

    function ajax(option) {
      // 创建对象
      var xmlRequest ;
      if (XMLHttpRequest) {
          xmlRequest = new XMLHttpRequest();
      }else{
          xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
    
      }
    
      // 格式化传入的数据为name=fox&age=18这样的格式
      var formatStr = "";
      for(var item in option.data){
          // 获取属性名,属性值,进行拼接
          formatStr+=item;// 属性名
          formatStr+="=";//等号
          formatStr+=option.data[item];//属性值
          formatStr+="&";//分隔符
      }
    
      // 去除最后一个&
      formatStr = formatStr.slice(0,-1);
    
      // open方法 如果是get方法,那么url之后需要添加数据
      if(option.method == "get"){
          option.url = option.url+"?"+formatStr;
          option.data = null;
      }
      // 调用open方法
      xmlRequest.open(option.method,option.url)
    
      // 如果是post设置HTTP协议头
      if (option.method=="post") {
          xmlRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
      }
    
      // send方法 这里的data已经是修改过的,如果使用的是get方法,那么data为null
          xmlRequest.send(option.data);
    
      // 判断状态改变,调用方法
      xmlRequest.onreadystatechange = function () {
      // 这步为判断服务器是否正确响应
      if (xhr.readyState == 4 && xhr.status == 200) {
                 option.success(这里的数据是ajax获取的);  
         } 
      };
    }
    

    命名空间

    命名空间:
    为了防止自定义的Ajax函数被用户覆盖,可以通过将该函数设置为一个对象的方法
    使用时,只需要通过对象.方法即可使用
    

    相关文章

      网友评论

          本文标题:js发起ajax代码

          本文链接:https://www.haomeiwen.com/subject/dgynbxtx.html