`

Ajax异步请求

阅读更多

一、javaScript 发送异步请求

/*
 * XMLHttpRequest对象的使用
 * 利用XMLHttpRequest接收纯文本的内容
*/
var xmlhttp; //XMLHttpRequest
/*
  * 用户名校验方法3
  * 使用XMLHttpRequest对象来进行Ajax的异步交互
  */
function verify3() {
 	//使用dom的方式获取文本框的值
	var username = document.getElementById("name").value;
 	
 	//1、创建XMLHttpRequest对象
 	//这是XMLHttpRequest对象使用五步中最复制的一步
	if (window.XMLHttpRequest) {
 		//针对FireFox、Molillar、Opera、Safari、IE7、IE8
		xmlhttp = new XMLHttpRequest();
 		//针对莫些特定浏览的bug进行修正
		if (xmlhttp.overrideMimeType) {
			xmlhttp.overrideMimeType("text/xml");
		}
	} else {
		if (window.ActiveObject) {
			//针对IE6、IE5、
			//两个可以用于创建XMLHttpRequest对象的空间名称,保存在一个js的数组中
			//排在前面的是新版本
			//通过尝试的方式创建XMLHttpRequest对象
			var activexname = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
			for(var i = 0; i < activexname.length;i++){
				try{
					//取出一个控件名进行创建,如果创建成功就终止循环
					//如果创建失败,会抛出异常,然后可以继续循环,继续创建
					xmlhttp = new ActiveObject(activexname[i]);
					break;
				}catch(e){
					
				}
			}		
		}
	}
	
	//判断xmlhttprequest是否创建成功
	if(!xmlhttp){
		alert("XMLHttpRequest对象创建失败!");
		return;
	}else{
		alert(xmlhttp.readyState);
	}
	
	//2、 注册回调函数 - callback_02
	//注册回调函数时,只需要函数名,不需要加括号
	//我们需要将函数名注册,如果加上括号,就会把函数的返回值注册上,这是错误的
	//onreadystatechange 请求状态改变的触发器,状态一改变就会调用回调函数
	xmlhttp.onreadystatechange = callback_02;
	
	//3、设置连接信息
	//第一个参数表示http的请求方式,支持的http请求方式主要是get、post
	//第二个参数表示的是请求的url地址,get方式请求参数也在url中
	//第三个参数表示采用异步还是同步方式交互,ture表示异步
	
	//get方式发送请求
	//xmlhttp.open("GET","AjaxServerlet?name=" + username,true);
	
	//post方式请求
	xmlhttp.open("POST","AjaxServerlet",true);
	//post方式需要自己设置请求头
	xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");

	//4、发送数据,开始和服务器端进行交互
	//同步方式下,send这句换会在服务器端数据回来后才执行
	//异步方式下,send这句话会立即完成执行
	//post方式发送数据
	xmlhttp.send("name=" + username);
}

//创建回调函数callback_02
function callback_02(){
	alert(xmlhttp.readyState);
	//5、接收响应数据
	//判断对象的状态是交付完成:'4'表示交互完成 readyState(请求状态)有5个状态0、1、2、3、4
	//分别表示未初始话、open方法调用成功以后、服务器已答应客服端的请求、交互中(http头已经接收,相应数据尚未接收)、完成(数据接收完成)
	if(xmlhttp.readyState==4){
		//status服务器返回状态吗
		//判断http的交互是否成功:'200'表示成功交互
		if(xmlhttp.status==200){
			//获取服务器返回的数据
			//获取服务器端输出的纯文本的数据
			//responseText接收服务器返回的文本内容
			//responseXML接收服务器返回的兼容DOM的XML内容
			var responseText = xmlhttp.responseText;
			//将数据显示在页面上
			document.getElementById("result").innerHTML = responseText;
		}
	}
}

 

二、jquery方式发送异步请求

 

//ajax用户名校验
//定义用户名校验的方法1
function verify1() {
	//1、获取文本框中的内容
	var username = $("#name").val();
	//2、将文本框中的内容发送给服务器端的servlet
	//使用jquery的XMLHTTPrequset对象get请求的封装
	//callback回调函数,只是函数名不要写括号,故参数也不用写
	//get请求,解决中文乱麻问题的方法1,页面端发出的数据作一次encodeURI,服务器段使用new String(oldUserName.getBytes("iso8859-1"),"UTF-8");
    //get请求,解决中文乱麻问题的方法2,页面端发出的数据作两次encodeURI,服务器段使用URLDecoder.decode(oldUserName,"UTF-8")
	var url = "AjaxServerlet?name=" + encodeURI(encodeURI(username));
	//var url = "AjaxServerlet?name=" + username;
	$.get(url,null,callback);
}
/*
 * 回调函数
 * data即服务器返回的数据
 */
function callback(data) {
	//3、接收服务器端返回的数据
	var callData = data;
	//4、将服务器端返回的数据动态的显示在页面上
	$("#result").html(callData);
}

/*
 * 用户名方法校验2
 * 将上面的jquery运用精简为
 * function(callData){}为匿名函数
 */
function verify2() {
	$.get("AjaxServerlet?name=" + $("#name").val(), null, function (callData) {
		$("#result").html(callData);
	});
}


/*
 * jquery 方法读取服务器端的XML文件
 * 用jquery的ajax方法请求数据
*/
function verifyXML(){
	//1、读取文本框中的内容,并进行编码
	var username = $("#name").val();
	//var username = $("#name").val();
	//javaScript中一个简单的对象定义方法
	//解决中文乱码问题,agax请求一次encodeURI(username)服务器端URLDecoder.decode(oldUserName,"UTF-8")解码
	var data = {name:encodeURI(username),age:20};
	$.ajax({
		type:"post",			//http请求方式
		url:"AjaxXMLServlet",	//服务器端url地址
		data:data,				//发送给服务器端的数据
		dataType:"xml",			//告诉jquery返回的数据格式
		success:callbackXml		//定义交互完成,并且服务器正确返回数据时调用的回调函数
	})
	
}

function callbackXml(data) {
	//需要将data这个dom对象中的数据解析出来
	//首先需要将dom的对象转换为jquery对象
	//data为服务器端返回的数据
	var jqueryobj = $(data);
	//获取message节点
	var message = jqueryobj.children();
	//获取文本内容
	var text = message.text();
	//将内容输出到页面	
	$("#result").html(text);
}
分享到:
评论

相关推荐

    ajax异步请求小结

    **Ajax异步请求小结** Ajax(Asynchronous JavaScript and XML)是一种用于创建快速、动态网页的技术,它允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。这种技术极大地提升了用户体验,...

    Ajax异步请求简单示例

    总的来说,Ajax异步请求能够实现不刷新整个页面的情况下与服务器通信,提高用户体验。通过JavaScript和Java的配合,我们可以构建动态、高效的Web应用。这个示例提供了一个基础的Ajax请求流程,实际应用中,可能需要...

    Java通过jQuery实现ajax异步请求

    本示例工程"Java通过jQuery实现ajax异步请求"着重展示了如何利用jQuery的AJAX功能与后端Java服务器进行数据通信,从而实现页面的无刷新更新。以下将详细解释这个过程中涉及的关键知识点。 首先,jQuery是一个强大的...

    Ajax异步请求分页

    综上所述,Ajax异步请求分页是提高Web应用性能和用户体验的重要手段,结合C#的服务器处理能力,能够构建出高效且用户友好的分页系统。在实际开发中,需要根据项目需求灵活运用各种技术和策略,确保系统的稳定性和可...

    Ajax异步请求的验证

    本篇文章将深入探讨Ajax异步请求的验证,解决初级问题,为初学者提供参考。 一、Ajax的基本概念 Ajax并非一种单一的技术,而是一种利用现有Web技术(如JavaScript、XML、HTML、CSS等)组合成的新应用方式。它的...

    ajax异步请求演示

    用javascript硬编码方式和jquery框架方式完成ajax异步请求的示例源码。直接访问方式是,可以直接在tomcat启动后访问helloAjaxDemo.jsp或是helloJQueryAjaxDemo.jsp。

    一个实用了spring mvc和ajax异步请求的例子

    总结起来,这个"一个实用了spring mvc和ajax异步请求的例子"涵盖了Web开发中的重要概念,包括Spring MVC的Controller设计、RESTful API的实现以及Ajax的异步数据交互。这样的组合使得Web应用更加动态,用户体验更佳...

    jQuery-ajax-用户名异步请求

    在“jQuery-ajax-用户名异步请求”这个场景中,我们可能是在设计一个注册或登录界面,需要在用户输入用户名时实时检查该用户名是否已被占用。这个过程可以通过Ajax调用后台接口实现,避免用户频繁提交表单进行检查。...

    layui-tree实现Ajax异步请求后动态添加节点的方法

    在本示例中,我们需要实现一个功能:当用户在树形菜单中选择某一节点时,通过 AJAX 异步请求向后台添加新的子节点,并在前端动态显示出来。 首先,我们看到 HTML 结构中有一个 `#demo` ID 的 `ul` 元素,它是 layui...

    Ajax 异步请求-校验用户名唯一性

    这可以通过Ajax异步请求来实现,无需用户等待整个页面刷新,提供更好的用户体验。 以下是一般的步骤: 1. **前端视图(View)**:在HTML表单中,我们添加一个事件监听器,如`onkeyup`或`onblur`,当用户在用户名...

    Ajax 异步请求等特效

    **Ajax异步请求与用户体验** Ajax(Asynchronous JavaScript and XML)技术是Web开发中的一个重要工具,它使得网页可以在不刷新整个页面的情况下与服务器进行数据交互。这种技术在现代Web应用中广泛使用,因为它极...

    jQuery_ajax异步请求

    - **带参数的Ajax异步请求**: ```javascript $.ajax({ type: "POST", async: false, cache: false, url: "listComplaintQuantityReports.action", data: { "quantityReport.summaryStartDate": $("#...

    Ajax异步请求服务器(jquery)

    **Ajax异步请求服务器——基于Jquery** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新。在本...

    ajax异步请求

    ### AJAX异步请求详解 #### 一、引言 AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页可以实现动态更新...

    基于ASP.NET接口的AJAX异步请求实例(不是控件)

    **ASP.NET AJAX异步请求详解** ASP.NET AJAX(Asynchronous JavaScript and XML)是微软提供的一套用于构建富客户端Web应用程序的技术,它允许开发者创建具有部分页面刷新、无刷新更新和异步交互功能的Web应用。在...

    ajax异步请求数据分页

    标题中的“ajax异步请求数据分页”是指使用AJAX技术在后台动态获取所需的数据部分,而不是一次性加载整个数据集。这样可以提高网页的响应速度和用户的交互体验。AJAX的核心是XMLHttpRequest对象,它允许我们在不刷新...

    struts2的ajax异步请求访问

    通过以上步骤,你可以在Struts2框架下实现Ajax异步请求,无需直接操作Servlet的`PrintWriter`,从而保持控制器层的简洁性,同时提升应用的交互体验。在StrutsAjaxDemo项目中,你可以找到具体的示例代码,学习如何将...

    django ajax异步请求Django的Ajax库3813428.zip

    这个压缩包“django ajax异步请求Django的Ajax库3813428.zip”很可能包含了一些示例代码或者教程,用于讲解如何在Django项目中集成和使用Ajax。 在Django中,使用Ajax主要涉及以下几个关键知识点: 1. **jQuery和...

Global site tag (gtag.js) - Google Analytics