XMLHttpRequest---Ajax---Iframe伪Ajax(不刷新页面的前提下,前端与后端通信)

>>>index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div>
        <p>1.Ajax GET请求</p>
        username = <input type="text">
        password = <input type="text">
        <input type="button" value="Ajax提交"  οnclick="AjaxGET()" >
        <input type="button" value="XmlAjax提交" οnclick="XmlAjaxGET()">
    </div>

    <div>
        <p>2.Ajax  POST请求</p>
        username = <input type="text">
        password = <input type="text">
        <input type="button" value="Ajax提交"  οnclick="AjaxPOST()" >
        <input type="button" value="XmlAjax提交" οnclick="XmlAjaxPOST()">
    </div>

    <div>
        <p>3.iframe请求</p>
        <p>基于iframe+form表单</p>
        <iframe id="iframe" name="ifra" frameborder="1"></iframe>
        <form action="/ajax/" method="POST" id="fm" target="ifra">
            <input type="text" name="root" value="1111">
            <a οnclick="AjaxSubmit()">提交</a>
        </form>
    </div>

    <div>
        <div>
            <input id="url" type="text" placeholder="请输入url"><a οnclick="test()">查看</a>
        </div>
        <iframe id="iframe11" style="width: 600px;height: 300px" src="http://baidu.com.cn" frameborder="0"></iframe>

    </div>


<script src="/static/js/jquery-3.3.1.js"></script>
<script>
    

    
    function AjaxSubmit() {
        document.getElementById('iframe').onload = reload;
        document.getElementById('fm').submit()
    }

    function reload() {
        {#console.log(self);#}
        {#console.log(self.contentWindow.document.body.innerHTML);#}
        {#console.log($(self).contents().find('body').html())#}
        {#var content = $("#iframe").contents().find('body').html();#}
        var content = this.contentWindow.document.body.innerHTML;
        var obj =JSON.parse(content);
        if(obj.status){
            alert(obj.message);
        }
    }

    function test() {
        var url =$("#url").val();
        $("#iframe11").attr('src',url)

    }
    
    function AjaxGET() {
        $.ajax({
            url:'/ajax/',
            type:'GET',
            data:{key:'ajaxget请求'},
            success:function (args) {
            }
        })

    }

    function XmlAjaxGET() {
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {
             if(xhr.readyState == 4){
                console.log(xhr.responseText);
             }
        };
        xhr.open('GET','/ajax/?p=xmlget请求');
        xhr.send(null);

    }

    function AjaxPOST() {
        $.ajax({
            url:'/ajax/',
            type:'POST',
            data:{key:'ajaxpost请求'},
            success:function (args) {
            }
        })

    }

    function XmlAjaxPOST() {
        var xhr = new XMLHttpRequest();
        xhr.onreadystatechange = function () {
             if(xhr.readyState == 4){
                console.log(xhr.responseText);
             }
        };
        xhr.open('POST','/ajax/');
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset-UTF-8');
        xhr.send('p=123');
    }

</script>

</body>
</html>

>>>views
def index(request):

    return render(request,'index.html',locals())

def ajax(request):
    print(request.POST)
    print(request.GET)
    print(request.body)
    ret = {'status':True,'message':'....'}
    import json
    return HttpResponse(json.dumps(ret))

 

转载于:https://www.cnblogs.com/yzcstart/p/10710661.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值