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,我开始被这个东西搞的很头疼。但后来我一想,为什么不从反面去应他呢,下面就说说这种做法。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<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>第二个引用本来是错的,但为什么这里可以正常使用呢?主要是利用了浏览器的一个“容错的特性”,他们自动把第二个引用当作正确的引用,还不会报错。

java web的一些特殊用法(一),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。