通过调用jQuery内部封装的$.ajax()函数发送异步请求,依靠的是JavaScript提供的一个对象xhr(xmlhttpresponse)。
ajax函数内部需要传递一个方法体作为方法的参数,用一对大括号来包裹,方法体内用逗号分隔多个参数,采用参数名称:参数内容 的格式。参数是给定的不可以随意定义。参数的声明顺序没有要求。
语法结构:
$.ajax({
url:"",
type:"",
data:"",
success:function(){
},
error:function(){
}
});
参数的含义
参数 | 功能描述 |
---|---|
url | 标识请求的地址 ,不能包含参数列表部分 |
type | 请求类型:get post |
data | 携带的数据 username=tom&pwd=123 |
dataType | 提交的数据类型 一般使用json |
success | 正常响应的回调函数 |
error | 异常响应的回调函数 |
js代码可以独立存放在js文件或者script标签
接下来我们来完成用户注册功能,要求是提交表单在不刷新整个页面的情况下完成注册。
前端代码如下:
<script type="text/javascript">
//监听这个按钮的click事件 参数列表传递一个函数。当点击事件发生时触发这个函数,这个函数的函数体调用ajax函数完成异步请求
$("#btn-reg").click(function(){
$.ajax({
url:"/users/reg",
type:"post",
//这个函数把表单中的数据序列化并封装成一个json
data:$("#form-reg").serialize(),
dataType:"json",
success:function (json) {
//如果请求成功 状态码为200
if(json.state==200){
alert("注册成功!");
}else{
alert("注册失败!!!!!!!");
}
},
error:function (xhr) {
alert("注册产生未知错误"+xhr.status);
}
})
}
);
</script>