• 原生ajax与伪ajax


    原生ajax源码

     1 function GetXHR(){
     2             var xhr = null;
     3             if(XMLHttpRequest){
     4                 xhr = new XMLHttpRequest();        #如果没有XMLHttpRequest对象就使用ie的ActiveXObject("Microsoft.XMLHTTP")对象
     5             }else{
     6                 xhr = new ActiveXObject("Microsoft.XMLHTTP");
     7             }
     8             return xhr;
     9 
    10         }
    11 
    12         function XhrPostRequest(){
    13             var xhr = GetXHR();
    14             // 定义回调函数
    15             xhr.onreadystatechange = function(){
    16                 if(xhr.readyState == 4){
    17                     // 已经接收到全部响应数据,执行以下操作
    18                     var data = xhr.responseText;
    19                     console.log(data);
    20                 }
    21             };
    22             // 指定连接方式和地址----文件方式
    23             xhr.open('POST', "/test/", true);
    24             // 设置请求头
    25             xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset-UTF-8'); #使用POST的方法是需要加一个请求头
    26             // 发送请求
    27             xhr.send('n1=1;n2=2;');
    28         }
    29 
    30         function XhrGetRequest(){
    31             var xhr = GetXHR();
    32             // 定义回调函数
    33             xhr.onreadystatechange = function(){
    34                 if(xhr.readyState == 4){
    35                     // 已经接收到全部响应数据,执行以下操作
    36                     var data = xhr.responseText;
    37                     console.log(data);
    38                 }
    39             };
    40             // 指定连接方式和地址----文件方式
    41             xhr.open('get', "/test/", true);
    42             // 发送请求
    43             xhr.send();
    44         }
    45         
    46     jQuery的ajax提交在返回函数这里
    47     success:function(arg,a1,a2)这几个参数里面有一个就是XMLHtt
    View Code

    伪ajax操作源码

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Title</title>
     6 </head>
     7 <body>
     8 <!--<input type="text" id="url"/>
     9 <input type="button" value="提交" onclick="iframerequest();"/>
    10 <iframe id="iframe" src="https://www.baidu.com"> </iframe>-->
    11 {#伪ajax提交#}
    12 <input type="text">
    13 <form action="/ajax_json/" method="POST" target="iframe1">
    14     <iframe id="ifml" name="iframe1" onload="iframeload();"></iframe>
    15     {% csrf_token %}
    16     <input type="text" name="username"/>
    17     <input type="text" name="email"/>
    18     <input type="submit" value="form提交" onclick="sunmit()"/>
    19 </form>
    20 <script src="/static/jquery.js"></script>
    21 
    22 <script>
    23    /* function iframerequest(){
    24     var url=$('#url').val();
    25     $('#iframe').attr('src',url)*/
    26    /* function iframeload(){
    27         console.log('233333')
    28     }*/
    29     function sunmit(){
    30         $('#ifml').load(function () {
    31             var text=$('#ifml').contents().find('body').text();
    32             var obj = JSON.parse(text);
    33             console.log(obj)
    34         })
    35     }
    36 </script>
    37 </body>
    38 </html>
    View Code
     1 def ajax(request):
     2     print request.POST
     3     ret = {'code':True,'data':None}
     4     import json
     5     return  render(request,'ajax.html')
     6 
     7 def ajax_json(request):
     8     print request.POST
     9     ret = {'code':True,'data':request.POST.get('username')}
    10     import json
    11     return  HttpResponse(json.dumps(ret))
    View Code

    记录笔记

    参考博客:
    		http://www.cnblogs.com/wupeiqi/articles/5703697.html
    	
    	原生
    	function GetXHR(){
                var xhr = null;
                if(XMLHttpRequest){
                    xhr = new XMLHttpRequest();        #如果没有XMLHttpRequest对象就使用ie的ActiveXObject("Microsoft.XMLHTTP")对象
                }else{
                    xhr = new ActiveXObject("Microsoft.XMLHTTP");
                }
                return xhr;
    
            }
    
            function XhrPostRequest(){
                var xhr = GetXHR();
                // 定义回调函数
                xhr.onreadystatechange = function(){
                    if(xhr.readyState == 4){
                        // 已经接收到全部响应数据,执行以下操作
                        var data = xhr.responseText;
                        console.log(data);
                    }
                };
                // 指定连接方式和地址----文件方式  是否异步 true
                xhr.open('POST', "/test/", true);
                // 设置请求头
                xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset-UTF-8'); #使用POST的方法是需要加一个请求头
                // 发送请求
                xhr.send('n1=1;n2=2;');
            }
    
            function XhrGetRequest(){
                var xhr = GetXHR();
                // 定义回调函数
                xhr.onreadystatechange = function(){
                    if(xhr.readyState == 4){
                        // 已经接收到全部响应数据,执行以下操作
                        var data = xhr.responseText;
                        console.log(data);
                    }
                };
                // 指定连接方式和地址----文件方式
                xhr.open('get', "/test/", true);
                // 发送请求
                xhr.send();
            }
    		
    	jQuery的ajax提交在返回函数这里
    	success:function(arg,a1,a2)这几个参数里面有一个就是XMLHttpRequest,可以在这个对象里面取到所有想取的东西
    	
    	伪Ajax操作
    	<iframe></iframe>标签
    	<form action="/ajax_json/" method="POST" target="iframe1">
        <iframe id="ifml" name="iframe1" onload="iframeload();"></iframe>
        {% csrf_token %}
        <input type="text" name="username"/>
        <input type="text" name="email"/>
        <input type="submit" value="form提交" onclick="sunmit()"/>
    </form>
    	
    	
    	    function sunmit(){
            $('#ifml').load(function () {                    #给iframe的onload绑定事件,当执行onload的时候获取后台返回的数据,然后进行相关的操作
                var text=$('#ifml').contents().find('body').text();
                var obj = JSON.parse(text);
                console.log(obj)
            })
    	时机:
    		如果发送的是【普通数据】 -> jQuery,XMLHttpRequest,iframe
    

      

  • 相关阅读:
    使用XAMPP 搭建wordpress网站
    Debian VI高亮显示及注释颜色过灰暗更改办法
    用pgplot画一个抛物线。
    [转]开发Qt 4应用程序的基本流程和方法之我见
    零基础学Qt 4编程实例之三:勾三股四弦必五—文件包含语句与标准库的使用
    LINQ之路 7:子查询、创建策略和数据转换(要点笔记)
    jtemplates使用+同内容列合并
    委托事件调用的几种方式
    LINQ之路 6:延迟执行(Deferred Execution) 笔记
    简单总结上一份工作
  • 原文地址:https://www.cnblogs.com/qiangayz/p/9017536.html
Copyright © 2020-2023  润新知