Ajax?
- AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。
- 一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
Ajax请求的date数据格式有三种(本文以标准参数格式为例讲解后台如何接收参数)
- json对象格式
- json字符串格式
- 标准参数格式
首先先了解 json?
-
JSON 指的是 JavaScript Object Notation;是轻量级的数据交换格式; 独立于语言 *;是“自描述的”且易于理解
-
JSON 语法规则
• 数据是名称/值对
• 数据由逗号分隔
• 花括号保存对象
• 方括号保存数组 -
[1] json对象格式
{nickname:nickname,region:region,signature:signature}
ajax请求:
$.ajax({
type : "POST",
url : "servlet/TestServlet", // servlet映射地址
statusCode : {
404 : function() {
alert("url地址异常!");
}
},
cache : false,
data:{nickname:nickname,region:region,signature:signature},//json对象形式
success : function(result) {
alert(result);//将后台返回结果弹出
}
})
- [2] json字符串格式
{nickname: 'nickname', region: 'region',signature: 'signature'}
ajax请求:
$.ajax({
type : "POST",
url : "servlet/TestServlet", // servlet映射地址
statusCode : {
404 : function() {
alert("url地址异常!");
}
},
cache : false,
data:JSON.stringify({nickname: 'nickname', region: 'region',signature: 'signature'}),//json字符串形式
dataType: "json",
contentType: 'application/json;charset=utf-8',
success : function(result) {
alert(result);//将后台返回结果弹出
}
})
- [3] 标准参数格式
"nickname=" + nickname + "®ion=" + region + "&signature="+ signature
ajax请求:
$.ajax({
type : "POST",
url : "servlet/TestServlet", // servlet映射地址
statusCode : {
404 : function() {
alert("url地址异常!");
}
},
cache : false,
data : "nickname=" + nickname + "®ion=" + region + "&signature="+ signature,//标准参数形式
success : function(result) {
alert(result);//将后台返回结果弹出
}
})
- GET 还是 POST?
get 比 post 更简单更快,可用于大多数情况下。不过,在以下情况始终使用 post:
• 缓存文件不是选项(更新服务器上的文件或数据库)
• 向服务器发送大量数据(post无大小限制)
• 发送用户输入(可包含未知字符),post 比 get 更强大更安全
post请求能用json对象,json字符串,标准参数类型传递参数;而get请求不能用json字符串类型传递参数 ,因为get请求无法将json字符串解析成参数 ,因此以上三种格式统一使用了post。
ps:使用字符串形式传递参数时,需要添加contentType: 'application/json;charset=utf-8',
后台接收参数?
- 1、3两种方式可直接使用request.getParameter接收ajax请求;json字符串格式则需要结合@RequestBody解析
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
String nickname = request.getParameter("nickname");
String region = request.getParameter("region");
String signature = request.getParameter("signature");
在另一篇文章swfupload图片上传中,博主会讲解swfupload上传插件的使用实例,同时会涉及到ajax请求及后台响应,有兴趣的读者戳我