zoukankan      html  css  js  c++  java
  • ajax

    // 创建xhr对象(兼容IE7以下),这里利用DOM0级的方式为xhr对象添加了事件处理程序,因为并非
    // 所有浏览器都支持DOM2级方法
    function createXHR(){
    if(typeof XMLHttpRequest != "undefined"){
    return new HMLHttpRequest();
    }else if(typeof ActiveXObject != "undefined"){
    //适用于IE7之前的版本
    if(typeof arguments.callee.activeXString != "string"){
    var versions = ["MSXML2.XMLHttp.6.0","MSXML2.XMLHttp.3.0","MSXML2.XMLHttp"],
    i,
    len;
    
    for(i = 0,len = versions.length; i < len; i++){
    try{
    new ActiveXObject(vuersions[i]);
    arguments.callee.activeXString = versions[i];
    break;
    }catch(ex){
    //跳过
    }
    }
    }
    return new ActiveXObject(arguments.callee.activeXString);
    }else{
    throw new Error("NO XHR object available.")
    }
    }
    
    //新建一个xhr对象
    var xhr = new createXHR();
    //注册onreadystatechange事件检测每次状态变化之后readyState的值。
    //在接收响应之前还可以调用xhr.abort()方法来取消异步请求。调用该方法后xhr对象会停止触发事件,
    //而且也不再允许访问任何与响应哟管的对象属性。
    //该事件必须在open之前调用才能确保跨浏览器兼容性。
    xhr.onreadystatechange = function(){
    if(xhr.readyState == 4){
    if(( xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 ){
    // console.log(xhr.responseText);
    var data = JSON.$.parseJSON(xhr.responseText);
    function DOMHandler(data){
    //update DOM 
    }
    }else{
    console.log("Request was unsuccessful:" + xhr.status);
    }
    }
    };
    //启动一个请求
    //GET请求,通常用于向服务器查询某些信息。
    var url = "demo.php";
    url = addURLParam(url ,"name", "zhangyanling");
    url = addURLParam(url ,"book", "Javascript");
    
    xhr.open("get",url ,false);
    xhr.send(null);
    //POST请求,通常用于向服务器发送应该被保存的数据。POST请求应该把数据作为请求的主体提交,它的主体可以包含很多数据,且格式不限。
    xhr.open("post",url ,false);
    //可以使用setRequestHeader()设置自定义的请求头部信息,参数为:1.头部字段名称 2.头部字段值;
    //该方法只能在open之后send之前调用。
    xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    //调用getResponseHeader()方法并传入头部字段名称,可以获取响应的响应头部信息;
    //调用getAllResponseHeaders()方法可以取得一个包含所有头部信息的长字符串。
    //可使用serialize()对发送的数据进行序列化。
    xhr.send(null);
    
    function addURLParam(url ,name ,value){
    url += (url.indexOf("?")) == -1 ? "?" : "&";
    url += encodeURIComponent(name) + "=" + encodeURIComponent(value);
    return url;
    }
  • 相关阅读:
    素数筛代码
    stringsream用法
    MySQL学习(四)——外键
    MySQL学习(三)——Java连接MySQL数据库
    MySQL学习(二)——SQL语句创建删除修改以及中文乱码问题
    MySQL学习(一)——启动和登录MySql遇到的问题及解决
    BootStrap学习(三)——重写首页之导航栏和轮播图
    BootStrap学习(二)——重写首页之topbar
    BootStrap学习(一)——BootStrap入门
    jQuery学习(八)——使用JQ插件validation进行表单校验
  • 原文地址:https://www.cnblogs.com/zyl-Tara/p/6909012.html
Copyright © 2011-2022 走看看