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正则分析nginx的访问日志
Jan 17 Python
Python数据结构之栈、队列的实现代码分享
Dec 04 Python
python机器学习之神经网络(三)
Dec 20 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 Python
python绘制热力图heatmap
Mar 23 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
Dec 05 Python
Python3.7安装keras和TensorFlow的教程图解
Jun 18 Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
Feb 15 Python
为什么是 Python -m
Jun 19 Python
python tkinter模块的简单使用
Apr 07 Python
利用Python实现翻译HTML中的文本字符串
Jun 21 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和JavaScript判断请求是否来自微信内浏览器
2015/08/18 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
Prototype中dom对象方法汇总
2008/09/17 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
JS+flash实现chrome和ie浏览器下同时可以复制粘贴
2013/09/22 Javascript
Javascript中匿名函数的多种调用方式总结
2013/12/06 Javascript
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
原生JS实现圣旨卷轴展开效果
2017/03/06 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
angularjs实现天气预报功能
2020/06/16 Javascript
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
vscode中Vue别名路径提示的实现
2020/07/31 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
[01:06]DOTA2亚洲邀请赛专属珍藏-荧煌之礼
2017/03/24 DOTA
Python脚本实现12306火车票查询系统
2016/09/30 Python
使用wxpy实现自动发送微信消息功能
2020/02/28 Python
查看已安装tensorflow版本的方法示例
2020/04/19 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
浅谈HTML5新增和废弃的标签
2019/04/28 HTML / CSS
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
柏林通行证:Berlin Pass
2018/04/11 全球购物
物流专业大学应届生求职信
2013/11/03 职场文书
物业保安主管岗位职责
2013/12/25 职场文书
挂职思想汇报
2013/12/31 职场文书
人事专员的职责
2014/02/26 职场文书
教师网络培训感言
2014/03/09 职场文书
采购部长岗位职责
2014/06/13 职场文书
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python