zoukankan      html  css  js  c++  java
  • 如何使用Ajax

    要完整实现一个Ajax同步调用和局部刷新,通常需要以下几个步骤:

    1. 创建XMLHttpRequest对象,也就是创建一个异步调用对象

    2.创建一个新的HTTP请求,并指定该HTTP请求的方法,URL

    3.设置响应HTTP请求状态变化的函数

    话不多说,代码伺候:

    创建XMLHttpRequest对象:

    // 封装通用的XMLHttpRequest对象 ,兼容各个版本 
    	function createXHR(){
    		// 判断浏览器是否将XMLHttpRequest最为本地对象实现,正对IE7,firefox,opera等
    		if(typeof XMLHttpRequest != 'undefine'){
    			// code for IE7+, Firefox, Chrome, Opera, Safari
    			return new XMLHttpRequest();
    		}else if(typeof ActiveXObject != 'undefine'){
    			// code for IE6,IE5...
    			var xmlArr = ['Microsoft.XMLHTTP','MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP.2.0'];
    			var len = xmlArr.length, xhr;
    			for(var i=0;i<len;i++){
    				try{
    					// 创建XMLHttpRequest对象
    					xhr = new ActiveXObject(xmlArr[i]);
    					break;
    				}catch(ex){
    
    				}
    			}
    			return xhr;
    
    		}else{
    			throw new Error('No XHR Ojbect available.');
    		}
    	}
    

     

     

    也可以简写:

    function crateXHR(){
    			var xmlHttp;
    			if(windown.XMLHttpRequest){
    				//code for IE7+, Firefox, Chrome,Opera, Safari
    				xmlHttp = new XMLHttpRequest();
    			}else{
    				// code for IE6, IE5
    				xmlHttp = new ActiveXObject('Microsoft.XMLHttp');
    			}
    		}
    

     完整代码:

    <html>
    <head>
    	
    	<title>ajax</title>
    </head>
    
    <body>
    	
    <div id="banner" class="banner">
    </div>
    
    <script type="text/javascript">
    	// 封装通用的XMLHttpRequest对象 ,兼容各个版本 
    	function createXHR(){
    		// 判断浏览器是否将XMLHttpRequest最为本地对象实现,正对IE7,firefox,opera等
    		if(typeof XMLHttpRequest != 'undefine'){
    			// code for IE7+, Firefox, Chrome, Opera, Safari
    			return new XMLHttpRequest();
    		}else if(typeof ActiveXObject != 'undefine'){
    			// code for IE6,IE5...
    			var xmlArr = ['Microsoft.XMLHTTP','MSXML2.XMLHTTP.6.0','MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP.2.0'];
    			var len = xmlArr.length, xhr;
    			for(var i=0;i<len;i++){
    				try{
    					// 创建XMLHttpRequest对象
    					xhr = new ActiveXObject(xmlArr[i]);
    					break;
    				}catch(ex){
    
    				}
    			}
    			return xhr;
    
    		}else{
    			throw new Error('No XHR Ojbect available.');
    		}
    	}
    
    	// XMLHTTPRequest对象
    	var xhr = createXHR(), data =null;
    
    
    	// 响应XMLHttpRequest对象状态变化的函数,onreadystatechange在readstatechagne属性发生改变时触发
    	xhr.onreadystatechange = function(){
    		if(xhr.readystate==4){
    			if((xhr.status>=200 && xhr.status<300) || xhr.status === 304){
    				// 获得服务器返回的数据
    				// console.log(xhr.responseText);
    				// responseText返回的数据是string类型
    				// data = eval("("+xhr.responseText+")");
    				data = JSON.parse(xhr.responseText)
    
    				// 渲染数据到页面
    				renderDataToDom();
    			}
    		}
    	}
    
    	// 创建请求  
    	// open(method,url,async)方法有三个参数
    	// method 请求方式,url 要请求的文件在服务器上的位置 async 请求是同步还是异步    
    	xhr.open('get','./server.json',true);   
    	// 发送请求
    	xhr.send(null);
    	// xhr.send({user:'zhangsan',id:6})
    	// 设置http头部信息
    	// xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    
    
    	function renderDataToDom(){
     
    	}
    
    
    </script>
    
    </body>
    </html>
    

      

     

  • 相关阅读:
    安装rocketmq并配置管理界面
    centos7搭建xl2tpd
    搭建fastfds+nginx
    申请SSL域名证书
    nginx返回状态码
    搭建v/2/ray和sserver
    第十一周课程总结
    第八周课程总结
    实验报告七&&课程总结
    第八周课程报告&&实验报告六
  • 原文地址:https://www.cnblogs.com/xiaohaodeboke/p/12745377.html
Copyright © 2011-2022 走看看