$.get
.get是以GET方式实现AJAX请求,在提交短数据时可用。基本不常用,因为 .getJSON完全满足功能需要,正如上所说,结构合理、更加安全。即便是为了提交长数据,也不会选用 .get,而是 .post。但还是要了解其 用法:
$.get(
url,
[data],
[ callback]
;)
url:string类型,ajax请求的地址。
data:可选参数,object类型,发送至服务器的key/value数据会作为QueryString附加到请求URL中。
callback:可选参数,function类型,当ajax返回成功时自动调用该函数。
//项目案例
$.get(
"/legalconsult/answer/focus",
{id:id},
function(data){
if(data.error==0){
var su=$("#focus_"+id).text();
su=parseInt(su);
su++;
$("#focus_"+id).text(su); //后台操作功后返回error==0,在这里进行前端操作
var i=$("#show_"+id);
var j=$("<span><p class='icon-ok'></p>已赞同</span>");
i.empty().append(j);
return true;
}else{
showError(data.error); //调用其它函数,可忽视
return false;
}
}
);
$.post
$.post(
url,
[data],
[callback],
[type]
);
url:string类型,ajax请求的地址。
data:可选参数,object类型,发送至服务器的key/value数据会作为QueryString附加到请求URL中。
callback:可选参数,function类型,当ajax返回成功时自动调用该函数。
type:type为请求的数据类型,可以是html,xml,json等类型,如果我们设置这个参数为:json,那么返回的格式则是json格式的,如果没有设置,就和
.get()返回的格式一样,都是字符串的。这个方法和
.get()用法差不多,唯独多了一个type参数,这里就只介绍type参数,其他的参考上面$.get()的。
//实际项目案例
function changeMarkShow(id){
$.post(
"/legalconsult/admin/markquestion",{id:id},
function(data){
if(data.error==0){
showSuccessMessage("操作成功,正在刷新。。。。");
setTimeout("window.location.reload()",2200);
var i=$("td.markshow"+id+" a i" );
if(i.hasClass("splashy-star_full")){
i.removeClass("splashy-star_full").addClass("splashy-gem_empty");
}else{
i.removeClass("splashy-gem_empty").addClass("splashy-gem_full");
}
return true;
}else{
showErrorMessage(data.error);
return false;
}
},
"json" //声明数据格式
);
}
$.getJSON
$.getJSON()是专门为ajax获取json数据而设置的,并且支持跨域调用,其语法的格式为:
$.getJSON(
url, //请求URL
[data], //传参,可选参数
[callback] //回调函数,可选参数
);
url:string类型, 发送请求地址
data :可选参数, 待发送 Key/value 参数 ,同get,post类型的data
callback :可选参数,载入成功时回调函数,同get,post类型的callback
JSON是一种理想的数据传输格式,它能够很好的融合与JavaScript或其他宿主语言,并且可以被JS直接使用。使用JSON相比传统的通过 GET、POST直接发送“裸体”数据,在结构上更为合理,也更为安全。至于jQuery的getJSON()函数,只是设置了JSON参数的 ajax()函数的一个简化版本。这个函数也是可以跨域使用的,相比get()、post()有一定优势。另外这个函数可以通过把请求url写 成”myurl?callback=X”这种格式,让程序执行回调函数X。
特别注意:
//——项目中的实际案例
function changeAnswerShow(id){
$.getJSON(
"/legalconsult/admin/changeshowanswer",{id:id}, //URL和参数
function(data){
if(data.error==0){ //回调函数,与后台交互
showSuccessMessage("操作成功,正在刷新。。。。");
setTimeout("window.location.reload()",2200);
var i=$("td.show"+id+" a i" );
if(i.hasClass("splashy-gem_okay")){
i.removeClass("splashy-gem_okay").addClass("splashy-gem_remove");
}else{
i.removeClass("splashy-gem_remove").addClass("splashy-gem_okay");
}
return true;
}else{
showErrorMessage(data.error);
return false;
}
}
);
}
$.ajax
$.ajax是一种常用的普通封装异步方式。
$.ajax(options);
options是一个object类型,它指明了本次ajax调用的具体参数。呈上代码:
//示例
.ajax(
url: "/legalconsult/layer/update-info",
datatype:"json",
type:'post',
beforeSend:function(){
//函数体,数据发送前执行。
}
success:function(){
//函数体,数据发送成功回调
}
error: function(){
//函数体,数据发送错误时执行
}
);