教你快速上手Ajax

教你快速上手Ajax

一、原生JS实现Ajax

//定义方法
function  fun() {
    //发送异步请求
    //创建核心对象
    var xmlhttp;
    if (window.XMLHttpRequest)
    {		
    	// code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp=new XMLHttpRequest();
    }
    else
    {
    	// code for IE6, IE5
        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
    }

    // 建立连接
    /*
        参数:
            1. 请求方式:GET、POST
                * get方式,请求参数在URL后边拼接。send方法为空参
                * post方式,请求参数在send方法中定义
            2. 请求的URL:
            3. 同步或异步请求:true(异步)或 false(同步)

     */
    xmlhttp.open("GET","ajaxServlet?username=tom",true);
    //发送请求
    xmlhttp.send();

    //接受并处理来自服务器的响应结果
    //获取方式 :xmlhttp.responseText
    //当服务器响应成功后再获取
    //当xmlhttp对象的就绪状态改变时,触发事件onreadystatechange。
    xmlhttp.onreadystatechange=function()
    {
        //判断readyState就绪状态是否为4,判断status响应状态码是否为200
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
           //获取服务器的响应结果
            var responseText = xmlhttp.responseText;
            alert(responseText);
        }
    }
}

二、JQuery方式实现Ajax

1、 方式一

//定义方法
function  fun() {
    //使用$.ajax()发送异步请求
    $.ajax({
        url:"Servlet" , 	// 请求路径
        type:"POST" , 	//请求方式
        //data: "username=kun&age=18"//请求参数
        data:{"username":"kun","age":18},
        success:function (data) {
            alert(data);
        },//响应成功后的回调函数
        error:function () {
            alert("错误")
        },//表示如果请求响应出现错误,会执行的回调函数
         dataType:"text"//设置接受到的响应数据的格式
    });
}

2、 方式二

	//定义方法
    function  fun() {
        $.get("Servlet",{username:"kun"},function (data) {
            alert(data);
        },"text");
    }

3、 方式三

 		 //定义方法
        function  fun() {
            $.post("Servlet",{username:"kun"},function (data) {
                alert(data);
            },"text");
        }

4、注册方法

 //在页面加载完成后
    $(function () {
       //给username绑定blur事件
       $("#username").blur(function () {
           //获取username文本输入框的值
           var username = $(this).val();
           //发送ajax请求
           //期望服务器响应回的数据格式:{"user":true,"msg":"此用户名已注册"}
           //                         {"user":false,"msg":"用户名可用"}
           $.get("Servlet",{username:Kun},function (data) {
               //判断user键的值是否是true
               // alert(data);
               var span = $("#s_username");
               if(data.user){
                   //用户名存在
                   span.css("color","red");
                   span.html(data.msg);
               }else{
                   //用户名不存在
                   span.css("color","green");
                   span.html(data.msg);
               }
           });
       }); 
    });

三、思维升级实例

1、原生get方法

//执行get请求
function get() {
	//创建xmlhttprequest 对象
	var request = ajaxFunction()//发送请求
	request.open("GET" ,"/kun/Servlet?name=kun&age=18" ,true );
	//获取响应数据 注册监听的意思, 一会准备的状态发生了改变,那么就执行 = 号右边的方法
	request.onreadystatechange = function(){
		//能够正常处理, 状态码是200
		if(request.readyState == 4 && request.status == 200){
			//弹出响应的信息
			alert(request.responseText);
		}
	}
	request.send();
}

2、原生post方法

function post() {
		// 创建对象
		var request = ajaxFunction();
		//发送请求
		request.open( "POST", "/kun/Servlet", true );
		//状态监听 
		request.onreadystatechange=function(){
			if(request.readyState==4 && request.status == 200){
				alert("post:"+request.responseText);
			}
		}
		//post方式带数据要添加头,提交的数据类型是一个经过url编码的form表单数据
		request.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		
		//send方法里面写表单数据
		request.send("name=kun&age=18");
	}

3、JQ的Ajax异步请求

function post() {
		$.post("/kun/Servlet", {name:"kun",age:18},function(data,status) {
			$("#div").html(data);
		});
	}
posted @ 2020-03-29 14:05  李泽坤  阅读(199)  评论(0编辑  收藏  举报