zoukankan      html  css  js  c++  java
  • 41手写 Ajax的封装

    jQuery已经封装ajax,使用方法请跳转这里。 

    手写代码的封装:

    /*
     	method:
     			请求方式,值为get或者post
     	url:请求地址
     	data:没有值需要传入null
     		有请求数据则传入字符串数据,格式为"a=1&b=2";
     	deal200:
     			接受一个带有一个形参的js函数对象,形参接收的实参是ajax引擎对象
     	deal404:接受一个js函数对象
     	deal500:接受一个js函数对象
     */
    	function myAjax(method,url,data,deal200,deal404,deal500,async){		
    		//创建ajax引擎对象
    			var ajax=getAjax();
    			//复写onreadystatement函数
    			ajax.onreadystatechange=function(){
    				//判断Ajax状态吗
    				if(ajax.readyState==4){
    					//判断响应状态吗
    					if(ajax.status==200){
    						if(deal200){
    							deal200(ajax);
    						}
    					}else if(ajax.status==404){
    						if(deal404){
    							deal404();
    						}						
    					}else if(ajax.status==500){
    						if(deal500){
    							deal500();
    						}
    					}
    				}
    			}
    		//发送请求
    		if("get"==method){
    			ajax.open("get",url+(data==null?"":"?"+data),async);
    			ajax.send(null);
    		}else if("post"==method){
    			ajax.open("post",url,async);
    			ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    			ajax.send(data);
    		}
    		
    	}	
    /* --------------------------------------------------------------------------- */
    function getAjax(){
    	var ajax;
    	if(window.XMLHttpRequest){//火狐
    		ajax=new XMLHttpRequest();
    	}else if(window.ActiveXObject){//ie
    		ajax=new ActiveXObject("Msxml2.XMLHTTP");
    	}
    	
    	return ajax;
    }	
    

      

  • 相关阅读:
    并发编程练习题
    Python GIL(Global Interpreter Lock)
    并发编程之多进程
    并发编程之协程
    并发编程之多线程
    python 闯关之路三(面向对象与网络编程)
    python笔试题(2)
    开发一个支持多用户在线的FTP程序
    黄哥漫谈Python 生成器。
    scrapy 报错 no module named win32api 的解决方案
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/12382729.html
Copyright © 2011-2022 走看看