设为首页 加入收藏

TOP

如鹏网学习笔记(十四)ASP.NET(三)
2017-10-11 13:16:12 】 浏览:9500
Tags:学习 笔记 十四 ASP.NET
p.responseText);         }         
else{           alert("AJAX服务器返回错误!");         }       }     }     xmlhttp.send();//发送请求,发出请求后不等服务器返回数据,代码继续向下执行,所以不会发生阻塞,不会“卡”

  //简单的AJAX封装代码

    function ajax(url,onsucess,onfail){
      var xmlhttp = window.XMLHTTPRequest?new XMLHTTPRequest():new ActiveXObject("Microsoft.XMLHTTP");
      xmlhttp.open("POST",url,true);
      xmlhttp.onreadystatechange=function(){
        if(xmlhttp.readyState==4){
          if(xmlhttp.status==200){
            onsucess(xmlhttp.responseText);
          }
          else{
            onfail(xmlhttp.status);
          }
        }
      }
      xmlhttp.send();
    }

 




三十三、Json

  Json就是java script对象或者数组格式的字符串,Http协议不能传递java script对象,所以需要转换为字符串进行传输,需要JSON

  Json(一个标准,规定了对象以什么样的数据格式保存为一个字符串)将复杂对象序列化为一个字符串,在浏览器端再讲字符串反序列化为java script可以读取的对象。

  示例代码:

    java script对象:
      var persons = {name:'rupeng',age:8};
    java script数组:
      var names = ['rupeng','baidu','qq'];
    java script对象数组:
      var persons = [{name:'rupeng',age:18},{name:'baidu',age:1},{name='qq',age:19}];

三十四、Json的转换

  json字符串转换为js对象:使用eva l()函数,

  eva l()函数不安全?

    因为是动态执行解析代码,存在风险漏洞
    var obj = eva l("a("+data+")");
    示例代码:
      1,在java script中的Json对象的转换过程:
       

        var persons = [{name:'rupeng',age:19},{name:'baidu',age:17},{name:'taobao',age:10}];//定义JS中的一个对象数组
        //json就是一种格式,在js中将JS中的对象按照字符串的形式进行封装
        var jsonPsersons = "[{name:'rupeng',age:19},{name:'baidu',age:17},{name:'taobao',age:10}]";
        //使用eva l()函数将json字符串转换回js对象或者对象数组
        var personsOut = eva l("("+persons+")");//将json字符串加上小括号,传递给eva l函数,就得到了js对象
        //输出这个对象数组
        for(var i = 0;i<personsOut.length;i++){
          alert(personsOut[i].name+"="+personsOut[i].age);
        }

 


    2,在C#中 .NET对象序列化为Json字符串的方法:

      第一步,将,.NET对象序列化,转化为Json字符串
      第二步,将Json字符串转化为js对象,进行处理

      示例代码:
      第一步:

        string strs = {"rupeng.com","baidu.com","taobao.com"};//字符串对象
        java scriptSerializer jss = new java scriptSerializer();//创建序列化器的对象
        string json = jss.Serialize(strs);//进行序列化
        context.Response.Write(json);//将序列化后的json字符串返回给浏览器

      第二步,在html文件中,对json字符串进行解析,执行JS操作
 

     <script type="text/java script">
        ajax("JsonTest2.ashx",
          function (data) {
            var strs = eva l("("+data+")");
            for (var i = 0; i < strs.length; i++) {
              alert(strs[i]);
            }
          },
        function () { alert("错误"); })
      </script>

 



三十五、JQuery封装的AJAX
  示例代码:

  $.ajax({
    type:"post",url:"一般处理程序.ashx",
    success:function(data){
    alert(data);},
    error:function(){alert("错误");}
  });

 

  ajax方法的参数就是一个字典,
  最好设定post提交,data为提交的报文体,
  success为请求成功的处理事件,
  error为请求通讯失败的处理事件(服务器错误,404等)

三十六、JQuery AJAX Json处理

  可以使用$.parseJSON()方法,把json字符串解析为java script对象,比eva l()方法安全

  如果设定ajax请求的ContextType为“application/json”或者ajax请求中设定datatype:"json",
  那么success的第一个参数就是java script对象,不用手动去解析了

  代码示例:

  $.ajax({
    type:"post",datatype:"json",
    data:{i1:$("#txt1").val(),i2:$("#txt2").val()},
    success:function(){},
    error:function(){alert("错误");}
  });

  ajax的业务错误处理:
    error事件时通讯错误、服务器错误等。

  表单序列化:(在form场景下,如果表单很多,可以使用序列化的方式,如果不是form方式则不需要考虑)
    如果表单元素放到了form中,并且按照http的标准(设置了name属性),
    那么使用$("#form1").serializeArray()方法,就可以得到一个键值对数组,
    把这个值赋值给$.ajax的data属性。
    实现了整个form表单的元素的序列化,ajax数据处理

  全局

首页 上一页 1 2 3 4 5 6 下一页 尾页 3/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇今天瞎写的关于XML的一些。 下一篇ASP.NET MVC下Bundle的使用

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目