美文网首页
js ajax相关知识

js ajax相关知识

作者: super静_jingjing | 来源:发表于2018-03-07 15:59 被阅读0次

    ajax :无刷新数据读取
    使用ajax ,可以读取服务器环境下的文件,使用的时候注意编码

    1. http请求
      get:更适合获取数据
      post:更适合上传数据
      get和post对比
      get数据放在网址后面进行提交,post数据放在http的content中提交
      get安全性很低 ,post安全性一般
      get容量很低,post容量无限
    2. js一个重要特性
      如果只是使用一个不存在的变量,会直接报错;
      如果使用一个不存在的属性,会undefined;
      一个全局的变量,其实对于window来说是一个全局的属性;
    var a=12;
    alert(a);  // 结果 12
    alert(window.a); //  结果 12
    
    alert(a);//结果 报错
    alert(window.a) // 结果 undefined
    

    3.使用ajax
    1).创建一个ajax对象
    2).连接服务器
    3).发送请求
    4).接收返回值
    第一步:创建一个ajax对象
    在ie6以上才能使用XMLHttpRequest

     var oAjax = new XMLHttpRequest();
    

    在ie6中使用ActiveXObject进行创建

    new ActiveXObject("Microsoft.XMLHTTP");
    

    使用if进行ie6的适配,但是一下方式在ie6中依然会报错
    对于ie6来说XMLHttpRequest是一个不存在的变量

    var oAjax = null;
    //XMLHttpRequest这里会报错,因为对于ie6来说这是一个不存在的变量
    if(XMLHttpRequest){
     oAjax = XMLHttpRequest();
    }else{
     oAjax = new ActiveXObject("Microsoft.XMLHTTP");
    }
    

    这里就体现出js特性的好处:将不存在的变量转为属性

    var oAjax = null;
    //window.XMLHttpRequest在ie中也不会报错,只会是undefined
    if(window.XMLHttpRequest){
      oAjax = XMLHttpRequest();
    }else{
      oAjax = new ActiveXObject("Microsoft.XMLHTTP");
    }
    

    第2步:连接服务器

    //open(方法,url,是否是异步)
    oAjax.open("GET",url,true);
    

    第3步:连接服务器

    oAjax.send();
    

    第4步:接收返回值

    //  oAjax.readyState = 0 //刚刚初始化完成
    //  oAjax.readyState = 1 //载入,已经调用了send方法,正在发送请求
    //  oAjax.readyState = 2 //载入完成,send方法完成,已收到全部相应内容
    //  oAjax.readyState = 3 //解析,正在解析响应内容
    //  oAjax.readyState = 4 //完成,响应内容解析完成,可以在客户端调用了,但是不代表成功
    oAjax.onreadystatechange = function(){
      if(oAjax.readyState==4) //完成
      {
          if(oAjax.status==200)   //成功
          {
              alert(oAjax.responseText);//服务器返回值
          }
          else
          {
              alert(oAjax.status);// 错误
          }
      }
    }
    

    相关文章

      网友评论

          本文标题:js ajax相关知识

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