Ajax交互+Json数据传输

AJAX 请求

ajax是一种浏览器通过 js 异步发起请求,局部更新页面的技术。

Ajax 请求的局部更新,浏览器地址栏不会发生变化
局部更新不会舍弃原来页面的内容


使用JavaScript语言发起Ajax请求,访问服务器AjaxServlet中JavaScriptAjax

  1. 我们首先要创建XMLHttpRequest
var xmlhttprequest = new XMLHttpRequest();
  1. 调用open方法设置请求参数
xmlhttprequest.open("GET","http://localhost:8080/16_json_ajax_i18n/ajaxServlet?action=javaScriptAjax","true")
  1. 在send方法前绑定 onreadystatechange 事件,处理请求完成后的操作

每次当 readyState 改变时,就会触发 onreadystatechange 事件

属性描述
onreadystatechange存储函数(或函数名),每当readyState属性改变时,就会调用该函数
readyState存有 XMLHttpRequest的状态。从 0 到 4 发生变化。 0:请求末初始化 1:服务器连接已建立 2:请求已接受 3:请求处理中 4:请求已完成,且响应已就绪
status200: " OK " 404:未找到页面
xmlhttprequest.onreadystatechange = function(){

	if(xmlhttprequest.readyState == 4 && xmlhttprequest.status == 200){
	
		var jsonObj = JSON.parse(xmlhttprequest.responseText);

	// 把响应的数据显示在数据上
		document.getElementById("div01").innerHTML = "编号:" + jsonObj.id + ", 姓名:" + jsonObj.name;
	}

}
xmlhttprequest.responseText
  1. 调用send方法发送请求
xmlhttprequest.send();
protected void javaScriptAjax(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
	req.setCharacterEncoding("UTF-8");
	resp.setContenetType("text/html; charset=UTF-8");
	System.out.println("Ajax请求过来了");
	
	Person person = new Person(1,"SwaeLee");

	// json格式的字符串:一般我们要在客户端和服务器之间进行数据交换的时候,使用json字符串
	Gson gson = new Gson();
	String personJsonString = gson.toJson(person);

	resp.getWriter().write(personJsonString);
}

$.ajax方法

url : 表示请求的地址

type : 表示请求的类型GET 或 POST 请求

data : 表示发送给服务器的数据

格式有两种:
一:name=value&name=value
二:{key : value}

success : 请求成功,响应的回调函数

dataType : 数据类型


$("#ajaxBtn").click(function()){
	
	$.ajax({
		utl:"http://localhost:8080/16_json_ajax_i18n/ajaxServlet",
		data:"action=jQueryAjax",
		//data:{action:"jQueryAjax"},
		type:"GET",
		success:function(data) {
				//alert("服务器返回的数据是:" + data);
				// var jsonObj = JSON.parse(data);			

			// $("#msg").html("编号:" + jsonObj.id + ", 姓名:" + jsonObj.name);
			$("#msg").html("编号:" + data.id + ", 姓名:" + data.name);
		},
		dataType : "json" //这里写的是text纯文本,需要自己转成Json,如果写的是json,那就不需要自己再转成Json了
	});
}

<div id="msg">
	
</div>


Ajax-jQuery的get和post方法

$.get 方法和 $.post方法

url : 请求的url地址

data : 发送的数据

callback : 成功的回调函数

type : 返回的数据类型

$("#getBtn").click(function(){

	$.get(
	"http://localhost:8080/16_json_ajax_i18n/jQueryGet",
	"action=jQueryGet",
	function(data){
		$("#msg").html(" get 编号:" + data.id + ",姓名:" + data.name);
	},"json");	

});

$.getJSON 方法
url : 请求的url地址
data : 发送给服务器的数据
callback : 成功的回调函数
```html
$("#getJSONBtn").click(function(){

	$.getJSON(
	"http://localhost:8080/16_json_ajax_i18n/jQueryGetJSON",
	"action=jQueryGetJSON",
	function(data){
		$("#msg").html("JSON 编号:" + data.id + ",姓名:" + data.name);
	});	

});

AJAX-jQuery的serialize方法

表单序列化 serialize()

serialize() 可以把表单中所有表单项的内容都获取到,并以 name=value&name=value 的形式进行拼接


$("#submit").click(function(){

	alert( $("#form01").serialize() );	

	// 把参数序列化
		$.getJSON(
		"http://localhost:8080/16_json_ajax_i18n/Serialize",
		"action=jQuerySerialize&" + $("#form01").serialize(),
		function(){
		$("#msg").html(" Serialize编号:" + data.id + ", 姓名:" + data.name);
	});

});

protected void jQuerySerialize(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
	
	System.out.println("用户名:" + req.getParameter("username"));
	System.out.println("密  码:" + req.getParameter("password"));
	
	Person person = new Person(1,"SwaeLee");
	Gson gson = new Gson();
	String personJsonString = gson.toJson(person);

	resp.getWriter().write(personJsonString);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值