您的位置:首页 > Web前端 > JavaScript

javascript实现ajax

2015-07-30 21:42 573 查看
关键步骤:

1 创建xmlHttpRequest对象;

2 添加回调函数;

3 创建链接;

4 设置请求头信息;

5 发送数据;

var xmlHttpRequest;
function chaj(){	
	if(f1.name.value==null||f1.name.value==""){
		alert("不能为空 ");
		return false;
	}
	if(window.XmlHttpRequest){
		xmlHttpRequest=new XmlHttpRequest();
	}else{
		xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	xmlHttpRequest.onreadystatechange=callBack;
	var url="My";
	xmlHttpRequest.open("post",url,true);
	xmlHttpRequest.setRequestHeader("Content-type","application/x-www-form-urlencoded");
	xmlHttpRequest.send("name="+f1.name.value+"&timeStamp="+(new Date()).getTime());
	
}

function callBack(){
		
	if(xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200){	
		var result=xmlHttpRequest.responseText;
		result=result.replace(/(^\s*)|(\s*$)/g, "");
		alert(result);
		//alert(result);
	}
}


注意:xmlHttpServlet为全局变量,在发送数据前不要忘记设置requestHeadder信息。

open("post",url,true)第一个参数为提交方式,也可以为get提交,把参数写在url里;第三个默认也是true,true代表异步请求,false为同步请求;

服务器端:

通过PrintWriter回传信息;

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		String name1=request.getParameter("name");
		String timeStamp1=request.getParameter("timeStamp");
		System.out.println(name1+timeStamp1);		
		PrintWriter out=response.getWriter();		
		out.print("成功");
		out.flush();
		out.close();
	}


可以在后台拼接json格式字符串,前端同样用responseText接收数据;用eval函数把字符串形式转换成真正json;

result=eval("("+result+")" );

传送给客户端json数据:

服务端代码

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		String name1=request.getParameter("name");
//		String timeStamp1=request.getParameter("test");
		System.out.println(name1);		
		PrintWriter out=response.getWriter();	
		String str="{\"key1\":\"value1\"}";
		System.out.println(str);
		out.print(str);
		out.flush();
		out.close();
	}

}


客户端回调函数代码(其他相同)

function callBack(){
		
	if(xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200){	
		var result=xmlHttpRequest.responseText;
		result=result.replace(/(^\s*)|(\s*$)/g, "");
		var json1=eval("("+result+")");
		for(var i in json1){
			alert(json1[i]);
		}
		
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: