简单理解jQuery中$.get *** ON、$.get、$.post、$.ajax用法

访客3年前黑客文章481

1.$.get *** ON

  $.get *** ON()是专门为ajax获取json数据而设置的,并且支持跨域调用,其语法的格式为:

$.get *** ON(
      url,                 //请求URL
       [data],           //传参,可选参数
       [callback]       //回调函数,可选参数
   );

url:string类型, 发送请求地址 
  data :可选参数, 待发送 Key/value 参数 ,同get,post类型的data
  callback :可选参数,载入成功时回调函数,同get,post类型的callback

   *** ON是一种理想的数据传输格式,它能够很好的融合与JavaScript或其他宿主语言,并且可以被 *** 直接使用。使用 *** ON相比传统的通过 GET、POST直接发送“裸体”数据,在结构上更为合理,也更为安全。至于jQuery的get *** ON()函数,只是设置了 *** ON参数的 ajax()函数的一个简化版本。这个函数也是可以跨域使用的,相比get()、post()有一定优势。另外这个函数可以通过把请求url写 成"myurl?callback=X"这种格式,让程序执行回调函数X。

  特别注意:$.get *** ON是以GET方式提交数据,所以不能提交过大的数据量,可选$.post。至于如何修改为可用POST方式提交或者扩大GET提交数据量的问题,没有深入研究。

//——项目中的实际案例
function changeAnswerShow(id){
    $.get *** ON(
            "/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;
             }
           }
       );
}

2.$.get

  $.get是以GET方式实现AJAX请求,在提交短数据时可用。但我基本不常用,因为$.get *** ON完全满足功能需要,正如上所说,结构合理、更加安全。即便是为了提交长数据,也不会选用$.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='7b55-a5ca-98ed-64de icon-ok'></p>已赞同</span>");
                 i.empty().append(j);
                 return true;
            }else{
                showError(data.error);      //调用其它函数,读者可忽视
                return false;
            }
        }
);

3.$.post

  我在提交评论或者留言之类的数据时经常使用$.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"                                             //声明数据格式
             );
}

4.$.ajax

  $.ajax是一种常用的普通封装异步方式。

//示例
.ajax(
            url: "/legalconsult/layer/update-info",
            datatype:"json",
            type:'post',
            beforeSend:function(){
                            //函数体,数据发送前执行。
                     }
                      success:function(){
                            //函数体,数据发送成功回调
                          }
                      error: function(){
                            //函数体,数据发送错误时执行
                            }
         );

原文地址:https://www.cnblogs.com/dongsh/p/3235487.html

相关文章

一键还原B站BV号为AV号HTML网页源码

本文是分享:一键还原B站BV号为AV号HTML网页源码 快速还原BV为AV号,现在替换BILIBILI视频网页链接中的BV号为AV号依旧可以访问。 源码为网络看到,暂不明确作者。api调用地址:htt...

一言简单用法

给网站引入一言 随机一句话 <html>   <head>   <script src="http://libs.baidu.com/jquery/2.0.0/jqu...

bing每日一图做网站背景

bing图片,清晰而且精美,做背景是不错的选择,而且每日一图 ps:选择强迫症的读音 第一步:创建一个bing.php文件,放入下列代码 <?php $str=file_get_conte...

jQuery插件在jQuery ias中使用方案

浮窗插件或者懒加载在jQuery ias中使用方案 今天在写板子的时候,列表采用了ias无限加载,可是lightcase浮窗插件对新内容不识别 jQuery ias和ajax有点区别,ajax可以...

限制标题文字字数css或php

首先说一下css限制字数的方法 因为如果你需要限制字符 本人建议使用css Css好处是隐藏文字 并不是去截字符 所以对SEO优化有很大的好处的 text-overflow 1、clip:表示不显示省...

好看的进度环返回按钮

在杨小杰博客看到的 在以前某博客的某页面也见过类似效果 分享给大家 大致原理就是根据滚动距离和文档高度排定滚动百分比然后绘制画布,百分比数字是用data储存并使用css的 content属性实现...