简介
Ajax(Asynchronous Javascript And XML),异步JavaScript和XML,是指一种创建交互式、快速动态网页开发技术,无需重新加载整个页面的情况下,能够更新部分网页的技术。
jQuery与Ajax
jQuery提供多个与Ajax有关的方法,通过jQuery Ajax的方法,能够使用HTTP Get 和HTTP Post从远程服务器请求数据,进行前后端的数据交互。
使用
示例代码
$.ajax({
url: "/carManager2/login",
data: {userName:$("#loginname").val(),password:$("#loginpwd").val()},
success:function (data) {
if (data==="success"){
window.location.href="list"
}else{
$("#msg").text("用户名或密码错误")
}
}
});
部分参数
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 将自动替换 ? 为正确的函数名,以执行回调函数
登陆案例
controller
@ResponseBody
@PostMapping("/login")
public String login(String username,String password){
User user = userService.queryUser(userName, password);
if(user!=null){
return "success";
}else{
return "fail";
}
}
loginPage
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>登陆</title>
</head>
<body>
<h4 id="msg"></h4>
<form>
用户名:<input type="text" name="username" id="username"><br>
密码:<input type="password" name="password" id="password"><br>
<input type="button" value="登陆" id="login">
</form>
</body>
<script src="js/jquery-3.5.1.min.js" ></script>
<script type="text/javascript">
$("#login").click(function () {
$.post({
url: "/login",
data: {username:$("#username").val(),password:$("#password").val()},
success:function (data) {
if (data==="success"){
window.location.href="success"//成功登陆跳转页面,否则提示错误信息
}else{
$("#msg").text("用户名或密码错误")
}
}
});
})
</script>
</body>
</html>