1.Ajax简介
1.Ajax全称为:Asynchronous JavaScript and XML(异步JavaScript和XML),使用Ajax,我们可以无刷新状态更新页面,并且实现异步提交,提升了用户体验。
2.Ajax其实质是利用浏览器提供的一个特殊对象(XMLHttpRequest)异步地向服务器发送请求。
3.服务器返回部分数据,浏览器让你去利用这些数据对页面做部分更新,整个过程,页面无刷新,不打断用户的操作。
4.同步与异步:
- 同步:目前与服务器端的交互方式是同步,当客户端与服务器交互时,客户端就不能进行其他操作,只能等待服务器端的响应,会刷新页面。
- 异步(不同步):当客户端正在进行正常操作时,还可以同时与服务器进行交互,服务器向客户端响应信息,将信息更新到网页局部,整个过程页面不刷新。
2.创建XMLHttpResquest对象
1.XMLHttpRequest对象:发送请求到服务器并获得返回结果。
2.所有现代浏览器都内建了XMLHttpRequest对象,通过一行简单的JavaScript代码,就可以创建XMLHttpRequest对象:var httpobj =new XMLHttpRequest()
3.JavaScript对象XMLHttpRequest是整个Ajax技术的核心,它提供了异步发送请求的能力。
4.常用方法:
-
open(method,URL,async):建立与服务器的连接,method参数指定请求的HTTP方法,典型的值是GET或POST,URL参数指定请求的地址,async参数指定是否使用异步请求,其值为true或false;
-
send(content):发送请求,content参数指定请求的参数;
-
setRequestHeader(header,value):设置请求的头信息。
5.常用属性: -
onreadystatechange:事件,指定回调函数;
-
readystate:XMLHttpRequest的状态信息。
6.常用属性: -
status:HTTP的状态码:
200:服务器响应正常;
400:无法找到请求的资源;
403:没有访问权限;
404:访问的资源不存在;
500:服务器内部错误。 -
responseText:获得响应的文本内容。
3.Get方式/Post方式
1.Get方式提交:
xmlhttp.open(“GET”,“textServlet?name=”+userName,true);
xmlhttp.send(null);
2.Post方式提交:
xmlhttp.open(“POST”,“textServlet”,true);
POST方式需要自己设置http的请求头:
xmlhttp.setRequestHeader(“Content_Type”,“application/x-www-form-urlencoded”);
POST方式发送数据:
xmlhttp.send(“name=”+userName);
4.JSON
1.JSON(JavaScript Object Notatoin)是一种轻量级的数据交换格式:
- 数据在键值对中;
- 数据由逗号分隔;
- 大括号保存对象;
- 方括号保存数组。
2.语法:
JSON键值对是用来保存JS对象的一种方式,和JS对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号"“包裹,使用冒号:分割,然后紧接着值:
{“firstName”:“John”}
{“name”:“value”,“sex”:“男”}
3.Java对象转JSON:
在异步交换数据时,java对象不能直接被传递给js,所以需要先把java对象转换为JSON格式字符串,把字符串响应给客户端,再由客户端将JSON字符串转换为JS对象即可($.parseJSON(jsonstr)).
4.Jquery实现AJAX- $.get()
$.get()是一个简单的GET请求功能,请求成功时可调用回调函数。
$.get(url,[data],[callback],[type]):
url:发送请求地址;
data:待发送key/value参数;
callback:发送成功时回调函数;
type:返回内容格式,xml,html,script,json,text,_default。
注意:请求是通过URL提交的,提交有大小限制(2KB)
5.Jquery实现AJAX- $.post()
这是一个简单的POST请求功能。请求完成时可调用回调函数:
$.post(url,[data],[callback],[type]):
url:发送请求地址;
data:待发送key/value参数;
callback:发送成功时回调函数;
type:返回内容格式,xml,html,script,json,text,_default。
POST请求是HTTP消息实体提交的,提交大小不受限制。
$(”#testForm").serialize()请求发送表单数据。