共计 9291 个字符,预计需要花费 24 分钟才能阅读完成。
ajaxController 层 层 层 层 层
@Controller
@RequestMapping("/")
public class AjaxController {private List<String> container=new ArrayList<>();
@RequestMapping("doCheck")
@ResponseBody
public String doCheck(String name) {if(container.contains(name))
return name+"已存在, 请换个名字";
return name +"不存在, 能够注册";
}
@RequestMapping("doSave")
@ResponseBody
public String doSave(String name) {// 办法参数名和客户端申请参数名雷同
container.add(name);// 后续这个值能够存储到数据库
return name+"save ok";
}
@RequestMapping("doAjaxGet")
@ResponseBody // 通知 spring mvc 此办法的返回值不是 viewname, 能够将其看成是一般字符串
public String doAjaxGet()throws Exception {//Thread.sleep(5000);
return "Ajax Get Request Result";
}
}
Controller 层 层 层 层 层
@Controller
@RequestMapping("/jquery/")
public class JQueryController {@RequestMapping("doAjaxGet")
@ResponseBody
public String doAjaxGet(String msg) {if(Math.random()>0.1) {throw new IllegalArgumentException("参数异样");
}
// 将客户端传到服务端的字符换转换为大写, 而后再响应给客户端.
return "Jquery Get request result"+msg.toUpperCase();}
@RequestMapping("doAjaxPost")
@ResponseBody
public String doAjaxPost(Integer id,String title) {
// 将客户端传到服务端的字符换转换为大写, 而后再响应给客户端.
return "Jquery Post request result"+id+"/"+title;
}
@RequestMapping("doAxiosPost")
@ResponseBody
public String doAxiosPost(@RequestBody Message msg) {return msg.toString();
}
}
Message controller pojo 层 层 层
public class Message {
private Integer id;
private String title;
public Integer getId() {return id;}
public void setId(Integer id) {this.id = id;}
public String getTitle() {return title;}
public void setTitle(String title) {this.title = title;}
@Override
public String toString() {return "Message [id=" + id + ", title=" + title + "]";
}
}
ajax-01
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>The Ajax-01 Page</h1>
<fieldset><!-- fieldset 能够对页面元素进行分组设计 -->
<legend>Ajax 异步申请 </legend>
<button onclick="doAjaxGet()">Ajax Get Request</button>
<span id="ajaxResultId">The Data is Loading ....</span>
</fieldset>
<script type="text/javascript">
//JS 中代码调试技巧:3 种办法 (日志 -console.log(), 断点 -debugger, 排除法 )
function doAjaxGet(){// debugger ( 只有在关上控制台窗口当前才无效)
//1. 创立 xhr 对象
var xhr=new XMLHttpRequest();
//2. 设置 xhr 对象的事件监听函数
xhr.onreadystatechange=function(){console.log(xhr.readyState);
//readyState== 4 示意服务端的响应后果在客户端曾经接管完了
//status==200 示意服务解决申请的过程中没有呈现任何异样.(响应的都是失常数据) if(xhr.readyState==4&&xhr.status==200){
// 获取 span 对象
var span=document.getElementById("ajaxResultId");
// 更新 span 对象外部的内容
span.innerHTML=xhr.responseText;
}
};
//3. 建设连贯 (Get 申请形式) xhr.open("GET","http://localhost/doAjaxGet",true);//true 示意异步
//4. 发送申请
xhr.send(null);
//console.log("======main======");
}
</script>
</body>
</html>
ajax-02
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>The Ajax 02 Page</h1>
<fieldset>
<legend>Ajax 表单申请 </legend>
<form>
<input type="text" id="nameId" name="name"
onblur="doCheck()" onfocus="doClear()">
<input type="button" onclick="doSave()" value="Save">
</form>
<span id="resultId"></span><!-- 此地位显示服务端响应后果 -->
</fieldset>
<script type="text/javascript">
function doClear(){document.forms[0].name.value=""; document.getElementById("resultId").innerHTML="";
}
// 检测名字是否已存在
function doCheck(){
//1. 创立 XHR 对象
const xhr=new XMLHttpRequest();
//2. 定义 XHR 对象的状态监听函数
xhr.onreadystatechange=function(){ if(xhr.readyState==4&&xhr.status==200){document.getElementById("resultId").innerHTML=
`<font color='red'>${xhr.responseText}</font>`;
}
}
//3. 建设连贯
let name=document.forms[0].name.value;
xhr.open("GET",`doCheck?name=${name}`,true);
//4. 发送申请
xhr.send(null);
}
// 保留表单中名字的值
function doSave(){//debugger,log, 排除法
// debugger
//1. 创立 XHR 对象
const xhr=new XMLHttpRequest();
//2. 定义 XHR 对象的状态监听函数
xhr.onreadystatechange=function(){ if(xhr.readyState==4&&xhr.status==200){document.getElementById("resultId").innerHTML=xhr.responseText;
}
}
//3. 建设连贯 (Post)
xhr.open("POST","doSave",true);
//post 申请传参须要设置申请头
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//4. 发送申请
let name=document.forms[0].name.value;// 获取输出的 name 属性值
// 构建参数对象
//4.1 形式 1
//var params="name="+name;// 淘汰
//4.2 形式 2
const params=`name=${name}`;// 一种新的写法, 这种写法称之为模板字符串, 所有字符串拼接都能够以这种形式进行实现
//4.3 形式 3
//var params={"name":name};//JavaScript 中的对象 (原生 ajax 形式默认不能够间接传递这样的对象)
xhr.send(params);//post 申请的参数须要写到此地位
}
</script>
</body>
</html>
ajax-03
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>The Ajax 03 Page</h1>
<fieldset>
<legend>Ajax 表单申请 </legend>
<form>
<input type="text" id="nameId" name="name" onblur="doCheck()">
<input type="button" onclick="doSave()" value="Save">
</form>
<span id="resultId"></span><!-- 此地位显示服务端响应后果 -->
</fieldset>
<script type="text/javascript" src="/js/ajax.js"></script>
<script type="text/javascript">
// 检测名字是否已存在
function doCheck(){
//1. 定义申请的 url
var url="http://localhost/doCheck";
//2. 定义申请参数
var name=document.forms[0].name.value;
var params=`name=${name}`;
//3. 发送 ajax get 申请
doAjaxGet(url,params,(result)=>{document.getElementById("resultId").innerHTML=
`<font color=red>${result}</font>`;
});
}
// 保留表单中名字的值
function doSave(){//debugger,log, 排除法
//1. 申请 url
const url="http://localhost/doSave";
//2. 申请参数
let name=document.forms[0].name.value;
let params=`name=${name}`;
//3. 发送 ajax post 申请
doAjaxPost(url,params,(result)=>{alert(result);
})
}
</script>
</body>
</html>
ajax-04
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>The Ajax 04 Page</h1>
<fieldset>
<legend>Ajax 表单申请 </legend>
<form>
<input type="text" id="nameId" name="name" onblur="doCheck()">
<input type="button" onclick="doSave()" value="Save">
</form>
<span id="resultId"></span><!-- 此地位显示服务端响应后果 -->
</fieldset>
<script type="text/javascript" src="/js/ajaxfk.js"></script>
<script type="text/javascript">
// 检测名字是否已存在
function doCheck(){
//1. 定义申请的 url
var url="http://localhost/doCheck";
//2. 定义申请参数
var
name=document.forms[0].name.value;
var params=`name=${name}`;
//3. 发送 ajax get 申请
$$.doAjaxGet(url,params,(result)=>{document.getElementById("resultId").innerHTML=
`<font color=red>${result}</font>`;
});
}
// 保留表单中名字的值
function doSave(){//debugger,log, 排除法
//1. 申请 url
const url="http://localhost/doSave";
//2. 申请参数
let name=document.forms[0].name.value;
let params=`name=${name}`;
//3. 发送 ajax post 申请
$$.doAjaxPost(url,params,(result)=>{alert(result);
})
}
</script>
</body>
</html>
ajax-05 代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>The Ajax 05 Page</h1>
<fieldset>
<legend>Ajax 表单申请 </legend>
<form>
<input type="text" id="nameId" name="name" onblur="doCheck()">
<input type="button" onclick="doSave()" value="Save">
</form>
<span id="resultId"></span><!-- 此地位显示服务端响应后果 -->
</fieldset>
<script type="text/javascript" src="/js/ajaxfk02.js"></script>
<script type="text/javascript">
// 检测名字是否已存在
function doCheck(){
//1. 定义申请的 url
var url="http://localhost/doCheck";
//2. 定义申请参数
var name=document.forms[0].name.value;
var params=`name=${name}`;
//3. 发送 ajax get 申请
$$.doAjaxGet(url,params,(result)=>{document.getElementById("resultId").innerHTML=
`<font color=red>${result}</font>`;
});
}
// 保留表单中名字的值
function doSave(){//debugger,log, 排除法
//1. 申请 url
const url="http://localhost/doSave";
//2. 申请参数
let name=document.forms[0].name.value;
let params=`name=${name}`;
//3. 发送 ajax post 申请
$$.doAjaxPost(url,params,(result)=>{alert(result);
})
}
</script>
</body>
</html>
axios-ajax-01
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<button onclick="doAjaxGet()">doAjaxGet</button>
<button onclick="doAjaxPost()">doAjaxPost</button>
<span id="result"></span>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script type="text/javascript">
function doAjaxGet(){axios.get('/jquery/doAjaxGet',{params:{msg:"hello axios"}})
.then((r)=>{// 服务响应状态为 200 时执行 then 函数内容
console.log(r.data); //document.getElementById("result").innerHTML=r.data; document.querySelector("#result").innerHTML=r.data;
})
.catch((err)=>{// 服务端响应状态非 200 时,执行 catch 函数。console.log(err);
});
}
function doAjaxPost(){axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
axios.post('/jquery/doAxiosPost',{"id":100,"title":"axios"})
.then((r)=>{// 服务响应状态为 200 时执行 then 函数内容
console.log(r.data); //document.getElementById("result").innerHTML=r.data; document.querySelector("#result").innerHTML=r.data;
})
.catch((err)=>{// 服务端响应状态非 200 时,执行 catch 函数。console.log(err);
});
}
</script>
</body>
</html>
jquery ajax 01
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>The Jquery ajax 01 Page</h1>
<fieldset>
<legend>Jquery Ajax function </legend>
<button onclick="doGet()">$.get(...)</button>
<button onclick="doPost()">$.post(...)</button>
<button onclick="doAjax()">$.ajax(...)</button>
<button onclick="doLoad()">$(...).load(...)</button>
<span id="resultId"></span>
</fieldset>
<script type="text/javascript" src="/js/jquery.min.js"></script>
<script type="text/javascript">
function doGet(){
//1. 申请 url
var url="/jquery/doAjaxGet";
//2. 申请参数
var params="msg=hello jquery ajax get method";
//3. 发送异步申请
$.get(url,params,(result)=>{$("#resultId").html(result);
})
}
function doPost(){
//1. 申请 url
var url="/jquery/doAjaxPost";
//2. 申请参数
var params="id=10&&title=AAA";
//3. 发送异步申请
$.post(url,params,(result)=>{$("#resultId").html(result);
})
}
function doAjax(){
//1. 申请 url
var url="/jquery/doAjaxPost";
//2. 申请参数
var params="id=10&&title=AAA";
//3. 发送异步申请
$.ajax({
type:"POST",// 能够省略,默认为 get 申请
url:url,
data:params,// 能够省略 (无需向服务端传递参数)
dataType:"text",// 能够省略 (由 ajax 函数外部基于返回值进行匹配解决)
async:true,// 能够省略,默认为 true,示意异步
success:function(result){// 解决服务端返回的失常信息
$("#resultId").html(result);
},
error:function(xhr){// 解决服务端返回的异样信息
console.log(xhr.statusText);
$("#resultId").html(xhr.statusText);
}
})
}
function doLoad(){
//1. 申请 url
var url="/jquery/doAjaxGet";
//2. 申请参数
var params="msg=hello jquery ajax get method";
//3. 发送异步申请
// 通过 load 函数向服务端发送异步申请,将服务端响应的后果异步更新到
//resultId 对应的地位
$("#resultId").load(url,params);
}
//......
</script>
</body>
</html>
正文完
发表至: springboot
2020-10-07