JavaWeb项目异步传输JavaScript运用Ajax的异步交互

本文详细介绍了在JavaScript中如何使用Ajax实现与服务器的异步通信,包括创建XMLHttpRequest对象、建立连接、发送请求及响应处理等关键步骤,并提供了一个完整的示例代码。

JS(非JQuery)中Ajax的使用

***今天整理电脑文件,翻出了之前学JS中对Ajax的的使用的一个小小总结,现跟大家一起分享,可以给刚学Javascript的小萌新一点点学习

现实ajax的步骤

  1. 创建XMLHttpRequest对象;
  2. 浏览器与服务器建立连接 ;
  3. 浏览器向服务器发送请求 ;
  4. 服务器向浏览器响应请求。
//当页面加载完毕之后,执行以下代码
window.onload = function(){
	document.getElementById("ok").onclick = function(){
		/*
		 * ok为发生点击事件的对象id,一旦点击就会调用此function方法;
		 * 1.创建XMLHttpRequest对象
		 */ 
		 var xhr = ajaxFunction();
		/*
		 * 2	服务器向浏览器响应请求
		 * readyState 属性表示Ajax请求的当前状态。它的值用数字代表。
				0 代表未初始化。 还没有调用 open 方法
				1 代表正在加载。 open 方法已被调用,但 send 方法还没有被调用
				2 代表已加载完毕。send 已被调用。请求已经开始
				3 代表交互中。服务器正在发送响应
				4 代表完成。响应发送完毕
				
			常用状态码及其含义:
				404 没找到页面(not found)
				403 禁止访问(forbidden)
				500 内部服务器出错(internal service error)
				200 一切正常(ok)
				304 没有被修改(not modified)(服务器返回304状态,表示源文件没有被修改 )
		 */ 
		 xhr.onreadystatechange = function(){
		 	alert(xhr.readyState);
			//alert(xhr.status); //可输出状态值进行查询验证
			if(xhr.readyState==4){
				if(xhr.status==200||xhr.status==304){
					var data = xhr.responseText;//获取到的data数据
					alert(data);//输出校验或者可以通过js显示在你需要显示的地方
				}
			}
		 }
		
		/*
		 * 3	浏览器与服务器建立连接
		 * 
		 * xhr.open(method, url, asynch);
		 * 		* 与服务器建立连接使用
		 * 		* method:请求类型,类似 “GET”或”POST”的字符串。
		 * 		* url:路径字符串,指向你所请求的服务器上的那个文件。请求路径
		 * 		* asynch:表示请求是否要异步传输,默认值为true(异步)。
		 */ 
		 xhr.open("POST","loginServlet?",true);
		 xhr.send("username=admin&password=admin");
		/*
		 * 4.浏览器向服务器发送请求
		 * 参数说明
		 * (1)如果浏览器请求的类型为GET类型时,通过send()方法发送请求数据,服务器接收不到
		 * (2)请求路径
		 * (3)true异步请求,false同步
		 * 	send()方法:可将需要传输到后台的数据通过此方法传入(格式按url数据传递格式进行编写)
		 * 
		 */
	}
}
//ajaxFunction为定义一个ajax的对象方法,方便上面调用创建ajax对象
function ajaxFunction(){
   var xmlHttp;
   try{ // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e){
	   try{// Internet Explorer
	         xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
	      }
	    catch (e){
	      try{
	         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
	      }
	      catch (e){}
	      }
    }

	return xmlHttp;
 }

真实开发中几乎不用这样的技术,但对刚入门学习的同学来说还是有帮助,不喜勿喷。(有问题或不懂的,可在评论区问或私信、、)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值