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设置windows桌面壁纸的实现代码
Jan 28 Python
Perl中著名的Schwartzian转换问题解决实现
Jun 02 Python
matplotlib绘图实例演示标记路径
Jan 23 Python
tensorflow: 查看 tensor详细数值方法
Jun 13 Python
python调用java的jar包方法
Dec 15 Python
python处理“
Jun 10 Python
python scrapy爬虫代码及填坑
Aug 12 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
python下载卫星云图合成gif的方法示例
Feb 18 Python
Django表单提交后实现获取相同name的不同value值
May 14 Python
Python异常类型以及处理方法汇总
Jun 05 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基于curl主动推送最新内容给百度收录的方法
2016/10/14 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
2019/10/10 PHP
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
JavaScript小技巧 2.5 则
2010/09/12 Javascript
JS实现商品倒计时实现代码
2013/05/03 Javascript
js特效,页面下雪的小例子
2013/06/17 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
技术男用来对妹子表白的百度首页
2014/07/23 Javascript
JavaScript中的全局对象介绍
2015/01/01 Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
2015/10/21 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
用React实现一个完整的TodoList的示例代码
2017/10/30 Javascript
webpack-dev-server远程访问配置方法
2018/02/22 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
[04:09]2014DOTA2国际邀请赛Ti西雅图 历届冠军相继出局 BBC综述今日比赛
2014/07/20 DOTA
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
用Python创建声明性迷你语言的教程
2015/04/13 Python
python发送邮件实例分享
2017/07/28 Python
Python使用matplotlib实现基础绘图功能示例
2018/07/03 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
python中类的属性和方法介绍
2018/11/27 Python
CSS3中的transform属性进行2D和3D变换的基本用法
2016/05/12 HTML / CSS
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
如何填写个人简历自我评价
2013/12/10 职场文书
校园奶茶店创业计划书
2014/01/23 职场文书
营销总监岗位职责范本
2014/02/26 职场文书
商业融资计划书
2014/04/29 职场文书
党员服务承诺书
2014/05/28 职场文书
食品质量与安全专业毕业生求职信
2014/08/11 职场文书
2014年民警工作总结
2014/11/25 职场文书
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android
浅谈Java父子类加载顺序
2021/08/04 Java/Android