关于get/post/getJSON/ajax的异同学习

$.get


.getGETAJAX .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(){
                             //函数体,数据发送错误时执行
                             }
          );    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值