zoukankan      html  css  js  c++  java
  • java web的一些特殊用法(一)

    1.查看jquery ajax请求的数据的具体格式

    很多时候,我们需要查看到ajax返回时的具体格式才知道怎么去解析他。在最原始的ajax写法中,可以通过xmlhttp.responseText查看到ajax请求的原始数据,但使用框架后,这个数据就没法查到了。这里我们想到了一种跳过ajax框架的作法:直接使用链接请求:比如:

     1 $.ajax({
     2         type: "get",//使用get方法访问后台
     3         dataType: "json",//返回json格式的数据
     4         url: "${ctx}/ai/AIAction.do?",//要访问的后台地址
     5         data: "method=get_ai_list",//要发送的数据
     6         success: function(data){//msg为返回的数据,在这里做数据绑定
     7             /*代码体*/
     8                  },
     9         error:function(){
    10             alert("error");
    11         }
    12    });

    可以直接使用请求${ctx}/ai/AIAction.do?method=get_ai_list到浏览器地址栏中查看。
    顺便说一下,其实ajax请求的原理就是你后台给他什么,就带回来什么,并且是谁请求他,就将结果返回给谁。

    2.layer弹出层与jquery不兼容的解决方案

    本来只是一个bug,我开始被这个东西搞的很头疼。但后来我一想,为什么不从反面去应他呢,下面就说说这种做法。

    <script src="http://res.xiami.net/pc/lay/lib.js"></script>
    <script src="${ctx}/layer/layer.min.js"></script>
    <script type="${ctx}/js/jquery-1.8.3.js"></script>
    function zOpen(totalCount){
    		$.layer({
    		    type : 2,
    		    title : '结帐消息',
    		    iframe : {src : '${ctx}/jiezhang.jsp?totalCount='+totalCount},
    		    area : ['400px' , '300px'],
    		    offset : ['100px',''],
    		    time:3
    		});
    	}
    
    function checkout(totalcount)
    	{
    		var goodids = document.getElementsByName("GoodsIDs");
    		var goodsidstr = "";
    		for(var i = 0;i < goodids.length;i++)
    		{
    			//alert(sortids[i].value);
    			goodsidstr += goodids[i].value+',';
    		}
    		
    		goodsidstr = goodsidstr.substring(0,goodsidstr.lastIndexOf(','));
    		if(confirm('你确认要支付'+totalcount+'元?'))
    		{
    			
    			$.ajax({
    			    url: '${ctx}/good/GoodServlet?action=add_orders&giflag=1&goodsidstr='+goodsidstr,
    			 	type: 'post',
    			    dataType: 'xml',
    			    timeout: 1000,
    			    error: function(){
    			        alert('校验失败');
    			    },
    			    success: function(data){
    			    	$(data).find("response").each(function(index,ele){
    			    		var passed = $(ele).find("passed").text();
    			    		if(passed == 'true')
    			    			zOpen(totalcount);
    			    		else
    			    			alert('支付失败');
    			    	});
    			    }
    			});
    			setTimeout('reLoad()',6000);
    		}
    		else
    			return;
    	}
    

      注意到这两段代码中都有$,他们是不一样的,第一个是$是来自layer层的,第二是来自jquery的,这个时候,要保持他们的兼容特性

    就要注意到<script src="${ctx}/layer/layer.min.js"></script><script type="${ctx}/js/jquery-1.8.3.js"></script>第二个引用本来是错的,但为什么这里可以正常使用呢?主要是利用了浏览器的一个“容错的特性”,他们自动把第二个引用当作正确的引用,还不会报错。

  • 相关阅读:
    第九次任务
    第八次任务
    第七次任务
    第六次任务
    第四天半任务
    第四天任务
    第三天任务
    第二天任务
    第一天任务
    第⑩天任务
  • 原文地址:https://www.cnblogs.com/liuyq/p/3682383.html
Copyright © 2011-2022 走看看