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实现的检测网站挂马程序
Nov 30 Python
python中闭包Closure函数作为返回值的方法示例
Dec 17 Python
Python实现感知器模型、两层神经网络
Dec 19 Python
Python 查看文件的编码格式方法
Dec 21 Python
Python远程视频监控程序的实例代码
May 05 Python
Django如何自定义model创建数据库索引的顺序
Jun 20 Python
Python企业编码生成系统之主程序模块设计详解
Jul 26 Python
解决Python中报错TypeError: must be str, not bytes问题
Apr 07 Python
使用jupyter notebook直接打开.md格式的文件
Apr 10 Python
Python在线和离线安装第三方库的方法
Oct 31 Python
Python Django路径配置实现过程解析
Nov 05 Python
基于Python实现nc批量转tif格式
Aug 14 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+APACHE实现用户论证的方法
2006/10/09 PHP
PHP中VC6、VC9、TS、NTS版本的区别与用法详解
2013/10/26 PHP
基于php实现的php代码加密解密类完整实例
2016/10/12 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
jquery创建div 实现代码
2009/04/27 Javascript
js限制文本框为整数和货币的函数代码
2010/10/13 Javascript
extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
2013/04/02 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
firefox下jquery ajax返回object XMLDocument处理方法
2014/01/26 Javascript
Iframe 自动适应页面的高度示例代码
2014/02/26 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
Javascript iframe交互并兼容各种浏览器的解决方法
2016/07/12 Javascript
BootStrap表单验证实例代码
2017/01/13 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
原生JS无缝滑动轮播图
2019/10/22 Javascript
vue data恢复初始化数据的实现方法
2019/10/31 Javascript
Vue中通过属性绑定为元素绑定style行内样式的实例代码
2020/04/30 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
零基础写python爬虫之打包生成exe文件
2014/11/06 Python
Python实现的使用telnet登陆聊天室实例
2015/06/17 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
Windows平台Python连接sqlite3数据库的方法分析
2017/07/12 Python
python 录制系统声音的示例
2020/12/21 Python
python UIAutomator2使用超详细教程
2021/02/19 Python
python链表类中获取元素实例方法
2021/02/23 Python
会计自我鉴定
2013/11/02 职场文书
日语专业个人的求职信
2013/12/03 职场文书
市场营销战略计划书
2014/05/06 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
外出学习心得体会范文
2016/01/18 职场文书
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
golang特有程序结构入门教程
2021/06/02 Python
Python实现8种常用抽样方法
2021/06/27 Python
Python编程中内置的NotImplemented类型的用法
2022/03/23 Python
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers