• 面向对象之ajax


    1.Ajax发送请求的几个步骤

    1. 创建 XMLHttpRequest 对象

    var xhr = new XMLHttpRequest();
    //IE6 使用
    var xhr= new ActiveXObject('Microsoft.XMLHTTP');

    2. 准备发送

    xhr.open('get','./check.php',true);

    3. 执行发送动作

    xhr.send(null);

    4. 指定回调函数

            xhr.onreadystatechange=function(){
                if(xhr.readyState == 4){
                    if(xhr.status == 200){
                        var data=xhr.responseText;
                    }
                }
            }

    分析:

        /*
        * 参数一 :请求方式(get获取数据,post提交数据)
        * 参数二 :请求地址
        * 参数三 :同步或者异步标志位,默认是ture表示异步,false表示同步
        */
         get请求
         如果是get请求那么请求参数必须在url中传递
         encodeURI()用来对中文参数进行编码,防止乱码
         ----------------
         var param = 'username='+uname+'&password='+pw;
         xhr.open('get','03get.php?'+encodeURI(param),true);
         ------------------
             xhr.open('get','./check.php',true);
    
         post请求
         --------------------
          var param = 'username='+uname+'&password='+pw;
         xhr.open('post','04post.php',false);
         // 3、执行发送动作
         xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
         xhr.send(param);//post请求参数在这里传递,并且不需要转码
         --------------------

    2.服务器返回相应数据的两种格式

    responseXMl

    <booklist>
        <book>
            <name><?php echo $arr[0]['name'] ?></name>
            <author><?php echo $arr[0]['author'] ?></author>
            <desc><?php echo $arr[0]['desc'] ?></desc>
        </book>
    </booklist>

    注意:使用xml传输数据时候需要使用header("Content-Type:text/xml;");
    responseText

    21.什么叫元数据

    描述数据的数据,叫做元数据

    json数据格式:

    {
        "name":"zhansan",
        "age" :12,
        "hobby":["coding","swimming","singing"],
        "firend":{
                "high":"180cm",
                "weight":"80kg"
            }
    }

    原生ajax的封装

    function ajax(url,type,param,dataType,callback){
        var xhr = null;
        if(window.XMLHttpRequest){
            xhr = new XMLHttpRequest();
        }else{
            xhr = new ActiveXObject('Microsoft.XMLHTTP');
        }
        if(type == 'get'){
            url += "?" + param;
        }
        xhr.open(type,url,true);
    
        var data = null;
        if(type == 'post'){
            data = param;
            xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        }
        xhr.send(data);
        xhr.onreadystatechange = function(){
            if(xhr.readyState == 4){
                if(xhr.status == 200){
                    var data = xhr.responseText;
                    if(dataType == 'json'){
                        data = JSON.parse(data);
                    }
                    callback(data);
                }
            }
        }
    }

     
     
     
  • 相关阅读:
    "Emgu.CV.CvInvoke”的类型初始值设定项引发异常 解决办法
    EmguCV(OpenCV)实现高效显示视频(YUV)叠加包括汉字
    yuv420p转为emgucv的图像格式Emgu.CV.Image<Bgr, Byte>
    Emgu.CV/opencv 绘图 线面文字包括中文
    5.9 HTML5 新增表单控件 ---不是特别重要
    5.8 HTML5新结构标签
    5.8 HTML5新结构标签 ---不是特别重要
    5.7 CSS浏览器前缀
    5.6 CSS3 animation动画
    5.5 CSS3 transform变换
  • 原文地址:https://www.cnblogs.com/ysshuai/p/6706439.html
Copyright © 2020-2023  润新知