2.$.get()
load()方法通常用来从Web服务器上获取静态的数据文件,如果需要传递一些参数给服务器中的页面,那么可以使用$.get()和$.post().结构为:
$.get(url,data,function(data,textStatus),type)
//type表示返回数据的类型
//第一种:html片段
$(function(){
$("#send").click(function(){
$.get("get1.jsp", {
username : $("#username").val(),
content : $("#content").val()
}, function (data, textStatus){
$("#resText").html( decodeURI(data) ); // 把返回的数据添加到页面上
}
);
})
})
//第二种: XML文档
$(function(){
$("#send").click(function(){
$.get("get2.jsp", {
username : $("#username").val(),
content : $("#content").val()
}, function (data, textStatus){
var username = $(data).find("comment").attr("username");
var content = $(data).find("comment content").text();
username = decodeURI(username);
content = decodeURI(content);
var txtHtml = "<div class='comment'><h6>"+username+":</h6><p class='para'>"+content+"</p></div>";
$("#resText").html(txtHtml); // 把返回的数据添加到页面上
});
})
})
//第三种:JSON文件
/*
JSON具有两种格式,一种是键值对形式{"":""},另外一种是数组形式[{"":""},{"":""}]
注意:JSON的格式非常严格,构建的JSON文件必须完整无误,任何一个括号的不匹配或者缺少逗号,都会导致页面上的脚本终止运行,比如我们返回的数据都必须要有双引号,必须是{"username":"dqf"},而不能是{username:"dqf"}.
*/
//后台代码返回一个JSON字符串数组(这是一个省市二级联动的前后台)
List<City> citylist = cityService.getCityByProvince(proid);
Iterator<City> it = citylist.iterator();
StringBuilder sb = new StringBuilder("[");
while(it.hasNext()){
City city = (City) it.next();
sb.append("{\"cityname\":\""+city.getName()+"\"}");
sb.append(",");
}
sb.deleteCharAt(sb.length()-1);
sb.append("]");
String s = sb.toString();
System.out.println(s);
response.setCharacterEncoding("utf-8");
response.getWriter().write(s);
//前台
$.post("/xiaoneinew/user/getCity",
{provincename:$("#getcity").val()},
function(data){
var ok =eval('('+data+')')
for(var i=0;i<ok.length;i++){
var city=ok[i].cityname;
$("#city").append("<option>" + city + "</option>");
}}
);
3.$.post()
与 .get()的区别:(感觉是在批斗 .get())
- Get请求会将参数跟在URL后进行传递,而POST方式则是作为HTTP消息的实体内容发送给web服务器。不过在AJAX请求中,用户看不到。
- Get对传输的数据有大小限制(通常不能大于2kb),而使用POST方式没有限制。
- Get方式请求是数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号和密码。Get会带来这种问题。