前端 - js方式Ajax/ jquery方式Ajax / 伪 ajax /伪ajax 进阶方式

DJANGO环境搭建:

目录文件:

关闭CSRF

添加目录文件路径

配置url

视图配置:

index页面配置:

测试:(成功)



进入正题:

ajax 通过GET提交数据至后台:  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{#    get请求:#}
    <a class="tj" onclick="a1()">提交</a>
    <a class="tj" onclick="a2()">提交</a>
    <script src="/static/js/jquery-1.12.4.min.js"></script>
    <script>
            {#第一种依赖jquery方式#}
            function a1() {
                $.ajax(
                    {
                        url:‘/aj1.html‘,
                        type:‘GET‘,
                        data:{‘p‘:123},
                        {#回调函数#}
                        success:function (arg) {
                        }
                    })
            }
            {#第二种原生DOM发送 不依赖jquery#}
             function a2() {
                var xhr = new XMLHttpRequest();
                xhr.open(‘GET‘,‘/aj1.html?p=321‘);
                xhr.onreadystatechange = function(){
                  if (xhr.readyState == 4){
                      {#这里readystate是一个状态码:有0,1,2,3,4,其中4是页面加载完成后执行#}
                      console.log(xhr.responseText);
                  }
                };
                xhr.send(null);
                }
    </script>
</body>
</html>

除了index页面修改以外其他配置都不需要修改

测试结果:

ajax 通过POST提交数据至后台: 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{#    get请求:#}
    <a class="tj" onclick="a1()">提交</a>
    <a class="tj" onclick="a2()">提交</a>
    <script src="/static/js/jquery-1.12.4.min.js"></script>
    <script>
            {#第一种依赖jquery方式#}
            function a1() {
                $.ajax(
                    {
                        url:‘/aj1.html‘,
                        type:‘POST‘,
                        data:{‘p‘:123},
                        {#回调函数#}
                        success:function (arg) {
                        }
                    })
            }
            {#第二种原生DOM发送 不依赖jquery 注意!! django框架 默认需要添加请求头#}
            {#发送数据不在是在url里,而是在最后的send里面发送数据#}
            function a2() {
                var xhr = new XMLHttpRequest();
                xhr.open(‘POST‘,‘/aj1.html‘);
                xhr.onreadystatechange = function(){
                  if (xhr.readyState == 4){
                      console.log(xhr.responseText);
                  }
                };
            {#django 默认需要请求头,才能解析数据,所以需要加请求头#}
                xhr.setRequestHeader(‘Content-type‘,"application/x-www-form-urlencoded");
                {#send为POST 数据#}
                xhr.send("p=321");
            }
    </script>
</body>
</html>

除了index页面修改以外其他配置都不需要修改

测试结果:

伪ajax 提交数据至后台(一般方式,有依赖jquery): 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {#伪ajax请求 iframe + form 标签绑定方式#}

    {#知识点!!!#}
    {#标签绑定事件 传递(this)这个值是 函数内this代表标签本身,若不传递this则代表windows类#}
    {#DOM/jquery绑定事件 不需要传递this这个参数,绑定事件本身就是this,在函数内this代表标签本身#}

    {#GET/POST 提交方式取决于form表单 提交的method参数#}

{#GET提交#}
    {#html代码开始#}
    <iframe id="p11" name=‘ifr‘ style="width: 100%;height:300px;display: block" onload="a2(this)"></iframe>
    <form class=‘form_1‘ method="GET" action="/aj1.html" target="ifr">
        <input type="text" class="in" name="p" value="123">
        <input type="submit" onclick="a1()" value="提交">
    </form>
    {#html代码结束#}

{#POST提交#}
    {#html代码开始#}
    {#<iframe id="p11" name=‘ifr‘ style="width: 100%;height:300px;display: block" onload="a2(this)"></iframe>#}
    {#<form class=‘form_1‘ method="POST" action="/aj1.html" target="ifr">#}
    {#<input type="text" class="in" name="p" value="123">#}
    {#<input type="submit" onclick="a1()" value="提交">#}
    {#</form>#}
    {#html代码结束#}

    <script src="/static/js/jquery-1.12.4.min.js"></script>
    <script>
        function a1() {
            $(‘.form_1‘).submit()
        };
        function a2(self) {
            //DOM方式
            console.log(self.contentWindow.document.body.innerText);
            //jquery方式
            console.log($(self).contents().find(‘body‘).html());
        };
    </script>
</body>
</html>

测试结果:(GET提交)

伪ajax 提交数据至后台(进阶方式,建议这种方式,不依赖jquery 兼容性高) 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
     {#伪ajax请求 iframe + form DOM绑定方式 建议这种方式,不依赖jquery 兼容性高#}
    <iframe id="p11" name=‘ifr‘ style="width: 100%;height:300px;display: block"></iframe>
    <form id=‘f1‘ method="GET" action="/aj1.html" target="ifr">
        <input type="text" class="in" name="p" value="123">
        <button onclick="a1()">提交</button>
    </form>
    <script>
        function a1() {
            document.getElementById(‘p11‘).onload = a3;
            document.getElementById(‘f1‘).submit()
        };
       function a3() {
            console.log(this.contentWindow.document.body.innerText);
            obj = JSON.parse(this.contentWindow.document.body.innerText);
           console.log(obj);
           console.log(typeof obj);
        };
    </script>
</body>
</html>

测试结果:(GET提交)

原文地址:https://www.cnblogs.com/Anec/p/9897667.html

时间: 2024-11-10 10:39:25

前端 - js方式Ajax/ jquery方式Ajax / 伪 ajax /伪ajax 进阶方式的相关文章

MVC中处理表单提交的方式(Ajax+Jquery)

MVC中处理表单有很多种方法,这里说到第一种方式:Ajax+Jquery 先看下表单: <form class="row form-body form-horizontal m-t"> <div class="col-md-6"> <div class="form-group"> <label class="col-sm-3 control-label">订单编号:</la

前端Ajax传递Json数据,后端处理两种方式

在这里只讨论在前端通过Ajax远程传输Json数据的,不讨论通过form的形式传递数据 第一种方式: 前端传递过来的数据刚好和我们的bean实体对象属性一致,则可以使用对象的形式接受. 前端写法: 1 $().ready(function(){ 2 var obj = JSON.stringify({'userNo':'121589','processId':'15','processName':'测试审批','description':'这是一个测试'}); 3 alert(obj); 4 5

PHP+jQuery 实现可选择url和ajax方式的分页类

1 /* 2 ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8.3.min.js + Smarty 3.1.18 ******* 3 ******* Date:2014-10-11 4 ******* Author:小dee5 ******* Blog:http://www.cnblogs.com/dee0912/6 */ 做了一个分页的功能模块,主要的文件包括

前端编程提高之旅(十七)----jquery中表单、表格和ajax

从一个框架核心功能层面上说,实现了选择器.DOM操作.事件.动画,功能已经完备了.而任何框架写出了就是应用的,所以这篇涉及的表单与表格知识,虽在DOM操作中有所涉及,但更偏于实际项目中的应用技巧的使用.ajax部分的内容更是前端与后端交互的核心.    一.jQuery中的表单与表格应用    实际项目中,表单和表格分别扮演采集.提交用户输入的信息和显示列表的数据.在HTML中非常重要.下面是这部分知识导图:    1.表单    (1)单行文本框     单行文本框职能是获取用户输入的指定格式

ajax下载,前端js下载(转)

前面一直做过下载的功能.就是后台将文件流写入response里面,然后就好了.前台会自动弹出下载提示等. 今天打算做一个ajax下载.想当然的结果死活浏览器没反应.我擦. 然后浏览器调试,发现response返回过来的是一串类似乱码的文本而不是二进制文件流.定位原因在这里. 之后继续百度,如何实现ajax异步下载.回答是这样的: 那就是请求方式有问题,文件下载的请求是不能写在ajax里面的! 原因:因为response原因,一般请求浏览器是会处理服务器输出的response,例如生成png.文件

2019年6月14日 Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)

摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端传输数据编码格式contentType 批量插入数据和自定义分页器 一.MVC与MTV MVC(Model View Controller 模型-视图-控制器)是一种Web架构的模式,所谓MVC就是把web应用分为模型(M),控制器(C),视图(V)三层:他们之间以一种插件似的,松耦合的方式连接在一起. 模型负责业务对象与数据库的对象(ORM),视图负责与用户的交互(页面),控制器(C)接受用户的输入调用模型和视图完成用户的请求. M

Java程序员之JS(一) 之 JQuery.ajax

背景:紧着现在项目的需要,先从JQuery.ajax出发,主要需求是通过 js 调用Java 代码,从而适应现在的项目. 先从几个概念开始讲解: 一. 什么是Deferred  Deferred 对象是由.Deferred构造的, .Deferred被实现为简单工厂模式.它是用来解决JS中的异步编程,遵循 Common Promise/A规范,实现此规范的还有when.js 和 dojo. Deferred 对象在 JQuery 1.5被引入,用来解决 Ajax 异步优化问题,正是由于 Defe

前端学习笔记--9/5~13/5 Ajax, jQuery

周末没有写本周的总结,今天再补上.顺别计划一下这周的学习内容. 上周说的计划本周做一些HTML+CSS+JS的小demo,但是我并没有去做.准确的说,上周基本上我只有星期一到星期三是全力开赴学习的,星期四的晚上熬了一天的夜,从此一直到今天都没有觉得补回来了,依旧是这么的困.周末也是因为这个原因,所以几乎没有学习,就在家睡过去了.果然是人老了精神跟不上了么.气哭. 赶紧开始总结吧.... Ajax JS和ajax jQuery之间的关系. 1. JS是一门前端语言 2. ajax是一门技术,提供一

windows2008环境+IE9,JS无法运行(JQuery、Ajax失效)

为需要在云端做性能测试,而公司采用的供应商Windwos方面只有Windows2008版本以上. 在测试机(云上)通过IE9访问系统时,发现JS无法运行. 进行了以下操作,解决问题: 1.更改:IE-->Internet选项-->高级-->启用第三方扩展 2.IE-->Internet选项-->安全-->将URL添加到受信任站点 3.IE-->Internet选项-->安全-->将自定义级别中的“脚本”相关的设置进行了调整(禁用->启用) 至此,