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提交)

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

  1. Ajax&jQuery教案总结

    Ajax&jQuery教程总结 目录 第一章 Ajax入门 6 第1讲 传统表单提交存在的问题 6 课程内容 6 1. 问题的引入 6 2. 问题的解决 6 参考进度(0.5课时) 7 第2讲 ...

  2. 图片轮播(淡入淡出)--JS原生和jQuery实现

    图片轮播(淡入淡出)--js原生和jquery实现 图片轮播有很多种方式,这里采用其中的 淡入淡出形式 js原生和jQuery都可以实现,jquery因为封装了很多用法,所以用起来就简单许多,转换成j ...

  3. 前端向服务器请求数据并渲染的方式(ajax/jQuery/axios/vue)

    原理: jQuery的ajax请求:complete函数一般无论服务器有无数据返回都会显示(成功或者失败都显示数据): return result

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

    MVC中处理表单有很多种方法,这里说到第一种方式:Ajax+Jquery 先看下表单: <form class="row form-body form-horizontal m-t&q ...

  5. JS原生对象实现异步请求以及JQ的ajax请求四种方式

    一.JS原生方式异步请求 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="A ...

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

    前面一直做过下载的功能.就是后台将文件流写入response里面,然后就好了.前台会自动弹出下载提示等. 今天打算做一个ajax下载.想当然的结果死活浏览器没反应.我擦. 然后浏览器调试,发现resp ...

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

    摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端传输数据编码格式contentType 批量插入数据和自定义分页器 一.MVC与MTV MVC(Model View Controller ...

  8. jQuery validate 根据 asp.net MVC的验证提取简单快捷的验证方式(jquery.validate.unobtrusive.js)

    最近在学习asp.netMVC,发现其中的验证方式书写方便快捷,应用简单,易学好懂. 验证方式基于jQuery的validate 验证方式,也可以说是对jQuery validate的验证方式的扩展, ...

  9. koa2:通过Ajax方式上传文件,使用FormData进行Ajax请求

    koa2通过表单上传的网上很多,但通过Ajax方式上传文件,使用FormData进行Ajax请求,不好找. 参考了这个用base64上传图片的例子.https://github.com/Yuki-Mi ...

随机推荐

  1. python 模块之-sys

    python 模块 sys import sys sys.argv       # 参数,第一个参数是脚本的文件明,自定义参数为数组的第二个   sys.argv[1] sys.version   # ...

  2. TP5报错总结

    LNMP一键安装包上部署TP5项目500错误或者空白解决 [问题原因] TP5的入口文件在public下,当他调用类文件时,跨目录所以造成500错误,或者一片空白的问题 [解决方法] 1.public ...

  3. python构建bp神经网络_鸢尾花分类(一个隐藏层)__1.数据集

    IDE:jupyter 目前我知道的数据集来源有两个,一个是csv数据集文件另一个是从sklearn.datasets导入 1.1 csv格式的数据集(下载地址已上传到博客园----数据集.rar) ...

  4. bzoj2142: 礼物

    2142: 礼物 Description 一年一度的圣诞节快要来到了.每年的圣诞节小E都会收到许多礼物,当然他也会送出许多礼物.不同的人物在小E心目中的重要性不同,在小E心中分量越重的人,收到的礼物会 ...

  5. 洛谷P2619 [国家集训队2]Tree I(带权二分,Kruscal,归并排序)

    洛谷题目传送门 给一个比较有逼格的名词--WQS二分/带权二分/DP凸优化(当然这题不是DP). 用来解决一种特定类型的问题: 有\(n\)个物品,选择每一个都会有相应的权值,需要求出强制选\(nee ...

  6. JAVA8给我带了什么——Optional和CompletableFuture

    不管是JAVA,还是.NET.我们常常会看到空异常(NullPointerException).这种异常都是在运行的过程中出现.往往是变量是一个null值.但是你引用这个变量的后继字段或是方法.所以我 ...

  7. spread与react

    我们写react组件的过程中会遇到这个 我们知道react中的{},浏览器会知道说是以js的形式进行解析出来.那么怎么解析...props呢? 这个就涉及到es6中的扩展运算符了,我们先看下面的一些运 ...

  8. Eclipse导入模板格式Xml配置文件

    Eclipse一般常用的可以导入两处 *.xml 格式的模板,一个是常用的注释格式模板,另一个是代码格式化时用的模板,导入方法如下: 假设: 1.xml 是代码注释格式模板     2.xml 是代码 ...

  9. JavaSE学习总结(十九)—— Java Web 综合应用(JSP、Servlet、IDEA、MySQL、JUnit、AJAX、JSON)

    一.使用Servlet+JDBC+MySQL+IDEA实现商品管理 1.1.创建项目 打开IntelliJ IDEA开发工具.点击Create New Project创建一个新的Web项目 选择Jav ...

  10. 02-HTML5新的input属性

    本节重点 HTML5 拥有多个新的表单输入类型.这些新特性提供了更好的输入控制和验证 本节介绍新的输入类型: date datetime datetime-local email month numb ...