zoukankan      html  css  js  c++  java
  • jQuery中ajax的4种常用请求方式

    1.$.ajax()返回其创建的 XMLHttpRequest 对象。

    $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数信息。详细参数选项见下。
    如果你指定了 dataType 选项,请确保服务器返回正确的 MIME 信息,(如 xml 返回 "text/xml")。
    实例:
    保存数据到服务器,成功时显示信息。

    $.ajax({
        type: "post",
        dataType: "html",
        url: '/Resources/GetList.ashx',
        data: dataurl,
        success: function (data) {
            if (data != "") {
              $("#pager").pager({ pagenumber: pagenumber, pagecount:data.split("$$")[1], buttonClickCallback: PageClick });
              $("#anhtml").html(data.split("$$")[0]);
            }
        }
    });            

    2.通过远程 HTTP GET 请求载入信息。

    这是一个简单的 GET 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。
    实例:

    $.get("test.cgi", { name: "John", time: "2pm" },
        function(data){
        alert("Data Loaded: " + data);
    });

    3. 通过远程 HTTP POST 请求载入信息。

    这是一个简单的 POST 请求功能以取代复杂 $.ajax 。请求成功时可调用回调函数。如果需要在出错时执行函数,请使用 $.ajax。
    实例:

    $.post("/Resources/addfriend.ashx", { "fid": fids, "fname":     fnames, "tuid": tuids, "tuname": tunames }, function (data) {
        if (data == "ok") {
            alert("添加成功!");
        }
    })    

    4.通过 HTTP GET 请求载入 JSON 数据。

    实例:

    $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=cat&tagmode=any&format=json&jsoncallback=?",
    function(data){
      $.each(data.items, function(i,item){
      $("<img/>").attr("src", item.media.m).appendTo("#images");
      if ( i == 3 ) return false;
      });
    });

    项目实际开发过程中,使用modal,在加载数据时,也会使用URL转向后台Java函数,以此作为比较。

    dialogEdit.modal({
      remote:base+"platform/sys/getEditDatail?id="+id+"&type="+type
      }
    )

    详解bootstrap的modal-remote两种加载方式

    【转载】请前往原地址

    方法一:

    使用链接
    <a href="demo.jsp" data-toggle="modal" data-target="#mymodal">打开</a>
    当点击该连接时,demo.jsp的内容就可以动态的加载到<div class="modal-content"></div>中。当然这里的连接也可以是controller

    方法二:

    使用脚本

    $("#myModal").modal({    
    
       remote: "page.jsp"    
    
    });    

     

    但是这样加载后,会有问题,modal数据只加载一次,如果要加载不同的数据,例如根据id查询详细信息,modal的数据是不能更新的,即使传的id值不同。其实解决办法很简单,只需要在加载下次数据前,将之前的加载的数据清除即可。
    最简单的方式就是监听modal的hidden,当modal关闭时,即把数据清除即可:

     
    //v2  
    $("#myModal").on("hidden", function() {    
        $(this).removeData("modal");    
    });    
    //v3  
    $("#myModal").on("hidden.bs.modal", function() {    
        $(this).removeData("bs.modal");  
    });   

    问题来了:如果在请求的页面中有$()加载事件加载比如boostrap-validator或者boostrap-fileinput等插件会出现奇怪的现象,第一次正常执行,关掉modal,第二次,$()的代码没有执行,第三次能执行;经过反复发现“hidden.bs.modal”监听每次都执行了,但是加载到<div class="modal-content"></div>里面的数据没有被清除,可能是这个原因导致的这种现象,于是改成如下代码:

    $("#myModal").on("hidden.bs.modal", function() {    
        $(this).removeData("bs.modal");  
        /*modal页面加载$()错误,由于移除缓存时加载到<span style="color: rgb(51, 51, 255);"><div class="modal-content"></div></span>未移除的数据,手动移除加载的内容*/  
        $(this).find(".modal-content").children().remove();   
    });   

     

  • 相关阅读:
    jQuery图片翻转弹出动画特效
    HTML5来了,7个混合式移动开发框架
    10款很好用的 jQuery 图片滚动插件
    JS图片自动和可控的轮播切换特效
    CSS3扇形动画菜单 鼠标滑过扇形展开动画
    css里面的几个你不知道的属性
    JS判断是否是微信打开页面
    js的escape()、encodeURI()、encodeURIComponent()区别详解
    使用HTML5的十大原因
    Hybrid App开发 四大主流移平台分析
  • 原文地址:https://www.cnblogs.com/Dreamice/p/7768095.html
Copyright © 2011-2022 走看看