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. Linux共享库LD_LIBRARY_PATH与ld.so.conf

    1. 往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf的,但是完了之后要调一下ldconfig,不然这个library会找不到 2. 想往上面两个目录以外加东西的时候, ...

  2. Git初次使用总结,安装到上传代码,多平台[码云|github]

    安装步骤 1.选择安装路径 2.选择创建图标,选择安装Git Bash和Git GUI 3.选择创建开始菜单 4.选择:use git and optional unix tools from the ...

  3. Sigma Function LightOJ - 1336 (约数和为奇数)

    题意: 求1-n中约数和为偶数的数的个数 记住一个定理:...平方数 及其 平方数的2倍 的约数和为奇数  then....减啦 证明: ....我jiao着人家写的很详细,so 看看人家写的吧! 转 ...

  4. hud 1312

    There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A ...

  5. 在finally块中使用try catch,并且catch的时候抛出异常的一个问题

    在finally中使用try/catch,并且catch的时候抛出异常 IDEA会提示警告 Reports throw statements inside of finally blocks. Whi ...

  6. Android 判定手机是否root

    Android获取手机root的状态 package com.app.demo; import java.io.File; import android.app.Activity; import an ...

  7. [NOI2009]二叉查找树

    题目大意: 给定一棵严格的treap,父亲节点的优先级必然小于儿子节点的.权值按照二叉树的定义,左儿子小于父亲小于右儿子. 深度从1开始定义,每个点除优先级.数值之外,还有一个访问频度. 访问频度所产 ...

  8. A1055. The World's Richest

    Forbes magazine publishes every year its list of billionaires based on the annual ranking of the wor ...

  9. (转)Maven中的DependencyManagement和pluginmanagement

    背景:最近在学习maven的多模块构建过程中看到DependencyManagement选项,对这个选项的使用做个记录! 区别与联系 这里介绍一个在父项目中的根结点中声明dependencyManag ...

  10. HashMap 与 ConcurrentHashMap 在初始化不同大小容量时,实际分配的空间情况

    HashMap.java  int capacity = 1;      int initialCapacitys[] = {1,2,3,4,5,6,7,8,9,10,11,13,15,16,17,2 ...