zoukankan      html  css  js  c++  java
  • Ajax入门

    什么是AJAX?

    AJAX: 异步的Javascript和XML;

    XMLHttpRequest对象

    //现代浏览器内置XMLHttpRqueset对象;
    
    //IE5 and IE6等用ActiveXObject("Microsoft.XMLHTTP")实现;
    
    //兼容的XMLHttpRqueset对象:
    var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");

    请求

    //规定请求类型、地址、是否异步
    xmlhttp.open(method, url, async);
    //method : get/post
    //url : url
    //async : true/false
    //发送请求 xmlhttp.send(string);
    //string : 仅用于post请求时

    服务器响应

    //responseText 获得字符串形式的响应数据
    xmlhttp.responseText
    
    //responseXML 获得XML形式的响应数据
    xmlhttp.responseXML

    onreadystatechange事件

    //onreadystatechange 储存函数或函数名,readyState改变时触发
    
    //readystate 储存XMLHttpRequest状态(0 - 4)
    0:请求未初始化
    1:服务器连接已建立
    2:请求已接收
    3:请求处理中
    4:请求完成并且响应
    
    //status 状态
    成功:200
    未找到页面:404

    //当readyState == 4 && status == 200 表示响应已ok
    xmlhttp.onreadystatechange = function(){
      if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
        //获得字符串形式的返回值,也可以获得XML形式的数据responseXML
        alert(xmlhttp.responseText)
      }
    }

    封装AJAX

    function getAjax(method, url, fnCall, data){
        //创建兼容的XMLHttpRequest对象
        var xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
    
        //规定发送形式、地址、异步
        xmlhttp.open(method, url, true);
    
        //发送
        if(method == "POST" || method == "post"){
            xmlhttp.send(data);
        }else{
            xmlhttp.send();
        }
    
        //成功
        xmlhttp.onreadystatechange = function(){
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
                //获得字符串形式的返回值,也可以获得XML形式的数据responseXML
                fnCall(eval("("+xmlhttp.responseText+")"));
            }
        }
    }
    
    //
    http://localhost/test.txt在本地服务器
    getAjax("GET", "http://localhost/test.txt", function(msg){ alert(msg); });
  • 相关阅读:
    前端性能优化方案-路由懒加载实现
    写 React / Vue 项目时为什么要在列表组件中写 key,其作用是什么
    自定义组件实现双向绑定v-model
    前端开发中如何快速定位问题
    修改浏览器属性配置的作用---开发机上解决跨域的方式
    vue展示md文件,前端读取展示markdown文件
    js数组去重
    VUE错误码Attribute ':sizeOpts' must be hyphenated
    前端开发-日常开发沉淀之git提交文件忽略
    创建一个新的分支并关联远程分支
  • 原文地址:https://www.cnblogs.com/jununx/p/3361823.html
Copyright © 2011-2022 走看看