django学习之ajax post传参的2种格式实例


Posted in Python onMay 14, 2021

一.ajax介绍

1、ajax的含义

Ajax全称“Async Javascript And XML”即:异步的javascript和XML。它是一种称谓,并不指代某项具体的技术,准确来说是一系列技术的集合.现在,所有的无刷新操作都被称为“Ajax”.

2、使用ajax的好处:

使用ajax避免了整页数据的刷新,也减少了请求等待的时间,提高了用户体验.

二.ajax传参的两种格式

假设有如下表单,需要将这些表单用ajax传参的方式传给后台,该怎么做呢…

django学习之ajax post传参的2种格式实例

我们知道ajax传参的格式为$.post(“地址”,参数,function(返回值){}),套用这个格式进行传参,有以下两种方法:

方法一:提交表单中的部分字段

我们可以获取用户名,密码等内容,将其拼接成一个字典(想传什么就将其拼接成字典格式,没有特殊限制,你甚至可以单独的只传一个用户名),将其作为参数传给后台

例:

{‘username':username,‘password':password,‘csrfmiddlewaretoken':csrf}

{‘username':username‘}

{‘password':password}

关于csrf是预防跨站攻击的内容,你可以移步djanjo之csrf防跨站攻击作下了解

接下来看看代码中是如何实现的,重点关注带有下方标记的代码

{# ?ajax #}

{# ?post提交 #}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册</title>
    {# 引用jquery #}
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
<form ation="" method="post">
    {# 防止跨站攻击 #}
    {% csrf_token %}
    用户名:<input type="text" name="username"><br>
    密码:<input type="text" name="password"><br>
<!--    {# 表单提交 #}-->
<!--    <input type="submit">-->

<!--    {# ajax提交 #}-->
    <input type="button" value="注册" id="button">
</form>
</body>
</html>
<script>
	{# ?ajax #}
    $("#button").click(function(){
        username = $("[name='username']").val();
        password = $("[name='password']").val();
        csrf = $("[type='hidden']").val();
        console.log(username,password,csrf);

        {# ?post提交 #}
        {# $.post("地址",{参数},function(返回值){}) #}
        $.post("/user/register/",{'username':username,'password':password,'csrfmiddlewaretoken':csrf},function(data){
            console.log(data)
        })

    });

</script>

方法二:提交表单中的所有字段

console.log($(“form”).serialize()

serialize是把表单中的字段序列化,弄成get的请求的字符串格式,将其作为参数传给后台

值得注意的是这里就不能像方法一里那样想传什么参数就传什么参数了,而是表单中所有的字段都会被纳为请求的字符串格式

接下来看看代码中是如何实现的,重点关注带有下方标记的代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>注册</title>
    {# 引用jquery #}
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>
<form ation="" method="post">
    {# 防止跨站攻击 #}
    {% csrf_token %}
    用户名:<input type="text" name="username"><br>
    密码:<input type="text" name="password"><br>
<!--    {# 表单提交 #}-->
<!--    <input type="submit">-->

<!--    {# ajax提交 #}-->
    <input type="button" value="注册" id="button">
</form>
</body>
</html>
<script>
	{# ?ajax #}
    $("#button").click(function(){
        console.log($("form").serialize());

        {# ?post提交 #}
        {# $.post("地址",{参数},function(返回值){}) #}
         $.post("/user/register/",console.log($("form").serialize()),function(data){
            console.log(data)
        })

    });

</script>

总结

到此这篇关于django学习之ajax post传参的文章就介绍到这了,更多相关django之ajax post传参内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python字典基本操作实例分析
Jul 11 Python
Python正则表达式分组概念与用法详解
Jun 24 Python
python爬虫基本知识
Mar 05 Python
python 正确保留多位小数的实例
Jul 16 Python
python使用matplotlib绘制热图
Nov 07 Python
python如何删除文件中重复的字段
Jul 16 Python
Django分页功能的实现代码详解
Jul 29 Python
pandas 如何分割字符的实现方法
Jul 29 Python
pandas和spark dataframe互相转换实例详解
Feb 18 Python
10款最佳Python开发工具推荐,每一款都是神器
Oct 15 Python
python 通过使用Yolact训练数据集
Apr 06 Python
用Python爬取某乎手机APP数据
Jun 15 Python
Python djanjo之csrf防跨站攻击实验过程
python控制台打印log输出重复的解决方法
聊一聊python常用的编程模块
May 14 #Python
如何获取numpy array前N个最大值
May 14 #Python
使用pandas模块实现数据的标准化操作
pandas 实现将NaN转换为None
May 14 #Python
Pandas||过滤缺失数据||pd.dropna()函数的用法说明
You might like
php跨服务器访问方法小结
2015/05/12 PHP
Yii2汉字转拼音类的实例代码
2017/04/18 PHP
详解php curl带有csrf-token验证模拟提交方法
2018/04/18 PHP
php DES加密算法实例分析
2019/09/18 PHP
Laravel监听数据库访问,打印SQL的例子
2019/10/24 PHP
JavaScript 自动完成脚本整理(33个)
2009/10/20 Javascript
JavaScript 学习笔记(十四) 正则表达式
2010/01/22 Javascript
解决JS浮点数运算出现Bug的方法
2013/03/12 Javascript
js实现跨域的方法实例详解
2015/06/24 Javascript
jQuery实现的超酷苹果风格图标滑出菜单效果代码
2015/09/16 Javascript
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
Vue.js第三天学习笔记(计算属性computed)
2016/12/01 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
react 兄弟组件如何调用对方的方法示例
2018/10/23 Javascript
js核心基础之闭包的应用实例分析
2019/05/11 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
JavaScript中layim之整合右键菜单的示例代码
2021/02/06 Javascript
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
[51:10]VP vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python实现身份证号码解析
2015/09/01 Python
python开发中range()函数用法实例分析
2015/11/12 Python
Python中操作符重载用法分析
2016/04/29 Python
python 自动重连wifi windows的方法
2018/12/18 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
python按修改时间顺序排列文件的实例代码
2019/07/25 Python
Python类如何定义私有变量
2020/02/03 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
python基于socket模拟实现ssh远程执行命令
2020/12/05 Python
python中altair可视化库实例用法
2021/01/26 Python
Python tkinter实现日期选择器
2021/02/22 Python
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
四风问题自查报告剖析材料
2014/02/08 职场文书
酒店保安领班职务说明书
2014/03/04 职场文书