一、实验目标
通过本次实验理解AJAX的原理,掌握jQuery AJAX的应用。支撑专业核心能力的培养。
二、实验要求
1. 理解和掌握jQuery AJAX的get方式请求
2. 理解和掌握jQuery AJAX的post方式提交
三、实验内容
jQuery AJAX get方式与服务器交付
jQuery AJAX post方式与服务器交付
四、主要仪器设备
硬件:PC电脑
软件:Visual Studio Code/WebStorm/HBuilder
五、考核方式及要求
提交实验报告、源代码
六、实验内容和步骤
1、修改实验3代码,制作同步注册功能
(1) 将实验3的main.html复制成main_sync.html,参考《实验5_Web接口文档》1.2节,为对应的表单控件添加name属性(同步提交时,控件的name值与服务器收到的参数名一一对应);将注册按钮类型改为submit;再添加一个form标记将所有表单控件包围,action和method参考《实验5_Web接口文档》1.1节,参考代码(需要添加和修改的地方用红色标示):
<form action="http://43.136.217.18:8081/registSync" method="post">
<div>用户名</div><div><input type="text" name="name"></div>
<div>手机号</div><div><input type="tel" name="phone"></div>
<div>密码</div><div><input type="psassword" name="psassword"></div>
<div>确认密码</div><div><input type="psassword"></div>
<div><input type="submit" value="注册"></div>
</form>
2、修改实验3代码,制作异步(AJAX)注册功能
(1) 将实验3的main.html复制成main_async.html,参考《实验5_Web接口文档》2.2节中的参数名,提取用户名、手机号和密码框中的值并构造成参数对象,对象属性和参数名一一对应,参考代码:
//提取参数
var paras = { name: "用户名文本框的值", phone: "手机号文本框的值", password: "密码框的值"};
$.ajax({
url: "http://43.136.217.18:8081/registAsync",
data: paras,
type: "POST",
datatype="json",
//访问成功,解析json
success: function(data){
//如果操作成功
if(data.State == "SUC"){
…… //跳转到success.html
}
else{
…… //显示出错信息
}
},
//访问失败
error: function(data){
….. //显示“无法连接到服务器”
}
})
注意:
① 修改浏览器URL即可完成跳转,如:window.location.href="新页面URL";
② 将success.html和error.html拷贝到main_async.html同一个目录中;
③ 上述错误信息显示到实验3的数据验证失败信息框中。
④ 要求使用jQuery代码编写
3、(选做)部署Tomcat服务器运行网页
(1)参考文档《Tomcat网站部署》部署服务器程序,将main_sync.html、main_async.html、success.html和error.html也部署到网站中。
(2)网页中使用的所有地址要采用相对地址,将地址的域名部分去掉,如:
将http://43.136.217.18:8081/registAsync改为registAsync
同步代码
<html lang="en">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<head>
<script type="text/javascript">
function setRootFontSize(){
var rootHtml = document.documentElement;
var rem = rootHtml.clientWidth / (1080 / 100); //1080为设计图px宽度
rootHtml.style.fontSize = rem + "px";
}
setRootFontSize(); //网页首次载入时执行一次
window.addEventListener("resize", setRootFontSize, false); //网页大小改变时执行
window.addEventListener("orientationchange", setRootFontSize, false); //横屏切换时执行
</script>
<title>实验二</title>
<link rel="stylesheet" href="demo02.css">
</head>
<body>
<form action="http://43.136.217.18:8081/registSync" method="post">
<div id="header">
<div class="header_left"></div><!---->
<div class="header_right"></div>
<div class="header_center">用户注册</div>
</div>
<div id="content">
<div class="content_left">用户名</div>
<div class="content_body"><input type="text" placeholder="请输入用户名" id="name" name="name"></div>
</div>
<div id="content2">
<div class="content2_left">手机号</div>
<div class="content2_right">
<input id="post" type="button" value="发送验证码">
<input id="receive" type="number" placeholder="请输入验证码" style="display: none;" >
</div>
<div class="content2_body"><input type="tel" placeholder="请输入手机号" id="phone" name="phone"></div>
</div>
<div id="content_password">
<div class="password_left">密码</div>
<div class="password_right"><input type="password" id="password" name="password"></div>
</div>
<div id="content_ensure">
<div class="ensure_left">确认密码</div>
<div class="ensure_right"><input type="password" id="ensure_password"></div>
</div>
<div id="errorArea" style="display: none;">异常显示区域</div>
<div class="button"><input type="submit" value="注册" id="regist"></div>
</form>
<div id="content_select">
<div class="select_left"><input type="button" value="已有账号"></div>
<div class="select_right"><input type="button" value="更换手机号"></div>
</div>
<div id="bottom">
<div class="bottom_left">
<img src="img/main_home2.png" class="picture">
<p>首页</p>
</div>
<div class="bottom_right">
<p>设置</p>
</div>
</div>
</body>
</html>
异步代码
<html lang="en">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<head>
<script src="js/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
function setRootFontSize(){
var rootHtml = document.documentElement;
var rem = rootHtml.clientWidth / (1080 / 100); //1080为设计图px宽度
rootHtml.style.fontSize = rem + "px";
}
setRootFontSize(); //网页首次载入时执行一次
window.addEventListener("resize", setRootFontSize, false); //网页大小改变时执行
window.addEventListener("orientationchange", setRootFontSize, false); //横屏切换时执行
$().ready(function(){
$("#regist").click(function(){
var errmassage="";
if($("#name").val()==""){
errmassage="请输入用户名";
}
else if($("#phone").val()==""){
errmassage="请输入手机号";
}
else if($("#password").val()==""){
errmassage="请输入密码";
}
if(errmassage!=""){
$("#errorArea").text(errmassage);
}
else{
var paras={name:$("#name").val(),phone:$("#phone").val(),password:$("#password").val()}
$.ajax({
url:"http://43.136.217.18:8081/registAsync",
data:paras,
type:"POST",
datatype:"json",
success:function(data){
if(data.state=="SUC"){
window.location.href="http://43.136.217.18:8081/success.html";
}
else{
var msg=data.msg;
$("#errorArea").html(msg)
}
},
error:function(data){
window.location.href="http://43.136.217.18:8081/error.html";
}
})
}
})
})
</script>
<title>实验二</title>
<link rel="stylesheet" href="demo02.css">
</head>
<body>
<div id="header">
<div class="header_left"></div><!---->
<div class="header_right"></div>
<div class="header_center">用户注册</div>
</div>
<div id="content">
<div class="content_left">用户名</div>
<div class="content_body"><input type="text" placeholder="请输入用户名" id="name"></div>
</div>
<div id="content2">
<div class="content2_left">手机号</div>
<div class="content2_right">
<input id="post" type="button" value="发送验证码">
<input id="receive" type="number" placeholder="请输入验证码" style="display: none;" >
</div>
<div class="content2_body"><input type="tel" placeholder="请输入手机号" id="phone" ></div>
</div>
<div id="content_password">
<div class="password_left">密码</div>
<div class="password_right"><input type="password" id="password"></div>
</div>
<div id="content_ensure">
<div class="ensure_left">确认密码</div>
<div class="ensure_right"><input type="password" id="ensure_password"></div>
</div>
<div id="errorArea"></div>
<div class="button"><input type="submit" value="注册" id="regist"></div>
<div id="content_select">
<div class="select_left"><input type="button" value="已有账号"></div>
<div class="select_right"><input type="button" value="更换手机号"></div>
</div>
<div id="bottom">
<div class="bottom_left">
<img src="img/main_home2.png" class="picture">
<p>首页</p>
</div>
<div class="bottom_right">
<p>设置</p>
</div>
</div>
</body>
</html>