ajax(Asynchronous Javascript And XM):异步 JavaScript 和 XML
ajax是由jQuery库中的js脚本写的一个函数
发出请求的方式,对于我现在这个阶段来说是:
<a> 超链接标签,<form>表单提交,<button>按钮方式
这些请求的发出,都是需要重新更新页面,不能实时动态的进行数据的刷新,所以就引入了ajax请求
一般的forword(转发)和redirect(重定向)都需要进行页面的刷新
例如:
对于一个文本框设置了焦点丢失事件,如果是通过原来的方式,则无法动态的获得页面的变化,只会出现一次请求,之后通过controller层重新==更新界面==,不会出现像现在这种情况不刷新网页的前提下,在当前界面发出了两次请求(a1为请求的方法名)
不用通过页面刷新而反应请求,进而实现异步刷新
ajax技术的关键,在于有callback()回调函数,通过回调函数,就可以不用刷新界面就可以获得controller层处理的 数据(json),不需要通过controller层进行重定向和转发操作
如何使用ajax:
$.post 与 $.get实际上也是使用的ajax请求,与ajax一样,只是对其进行了封装操作(不用指明请求的方式)
ajax具体样式:
jQuery.ajax(...)
部分参数:
url:请求地址
type:请求方式,GET、POST(1.9.0之后用method)
headers:请求头
data:要发送的数据
contentType:即将发送信息至服务器的内容编码类型(默认: "application/x-www-form-urlencoded; charset=UTF-8")
async:是否异步
timeout:设置请求超时时间(毫秒)
beforeSend:发送请求前执行的函数(全局)
complete:完成之后执行的回调函数(全局)
success:成功之后执行的回调函数(全局)
error:失败之后执行的回调函数(全局)
accepts:通过请求头发送给服务器,告诉服务器当前客户端可接受的数据类型
dataType:将服务器端返回的数据转换成指定类型
"xml": 将服务器端返回的内容转换成xml格式
"text": 将服务器端返回的内容转换成普通文本格式
"html": 将服务器端返回的内容转换成普通文本格式,在插入DOM中时,如果包含JavaScript标签,则会尝试去执行。
"script": 尝试将返回值当作JavaScript去执行,然后再将服务器端返回的内容转换成普通文本格式
"json": 将服务器端返回的内容转换成相应的JavaScript对象
"jsonp": JSONP 格式使用 JSONP 形式调用函数时,如 "myurl?callback=?" jQuery 将自动替换 ? 为正确的函数名,以执行回调函数