zoukankan      html  css  js  c++  java
  • ajax个人学习笔记

    1. function createXHR(){
    if(typeof XMLHttpRequest != 'undefined'){
    return new XMLHttpRequest();
    }else if(typeof ActiveXObject != 'undefined'){
    var version = ['MSXML2.XMLHttp.6.0',
    'MSXML2.XMLHttp.3.0',
    'MSXML2.XMLHttp'
    ];
    for(var i=0;i<version.length;i++){
    try{
    return ActiveXObject(version[i]);
    }catch(e){


    }
    }
    }else{
    throw new Error('你的系统或浏览器不支持XHR');
    }
    }


    2.IE浏览器第一次向服务器端请求,获取最新数据,其后默认获取的是缓存数据,而不是最新的数据,可以使用js中的随机字符串处理。


    3.ajax异步(true)过程中需要readyState=4值的判定


    4.xhr.getAllResponseHeaders();xhr.getResponseHeader();xhr.setRequestHeader();xhr.setRequestHeader('Content-Type','application/x-www-form-urlencode');模拟表单提交.


    5.ajax自定义封装:
    function ajax(obj){
    var xhr = createXHR();
    obj.url = obj.url + '?rand=' + Math.random();
    obj.data = params(obj.data);
    if(obj.method === 'get')
    obj.url += obj.url.indexOf("?") == -1? '?'+obj.data:'&'+obj.data;
    if(obj.async === true){
    xhr.onreadystatechange = function(){
    if(xhr.readyState ==4 ){
    callback();
    }
    };
    }else{
    callback();
    }


    xhr.open(obj.method,obj.url,obj.async);


    if(obj.method === 'post'){
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencode');
    xhr.send(obj.data);
    }else{
    xhr.send(null);
    }


    function params(data){
    var arr = [];
    for(var i in data){
    arr.push(encodeURLComponent(i) + '=' + encodeURIComponent(data[i]));
    }
    return arr.join('&');
    }


    function callback(){
    if(xhr.status == 200){
    obj.success(xhr.responseText);
    }else{
    alert('获取数据错误!错误代码:'+ xhr.status + ',错误信息:'+ xhr.statusText);
    }
    }
    }
  • 相关阅读:
    python--脚本传参与shell脚本传参(位置参数)
    python--一起来盖个时间戳!!
    python--多线程的应用
    python-局域网内实现web页面用户端下载文件,easy!
    java初始化顺序
    java List<String>的初始化 的一个小问题
    java.util.Queue用法
    C#中的struct(结构)为值类型,struct类型全接触
    Java 实例
    git还原某个特定的文件到之前的版本
  • 原文地址:https://www.cnblogs.com/qingguo/p/5686310.html
Copyright © 2011-2022 走看看