django学习之ajax post传参的2种格式实例
作者:金小金~ 发布时间:2022-07-09 02:21:57
一.ajax介绍
1、ajax的含义
Ajax全称“Async Javascript And XML”即:异步的javascript和XML。它是一种称谓,并不指代某项具体的技术,准确来说是一系列技术的集合.现在,所有的无刷新操作都被称为“Ajax”.
2、使用ajax的好处:
使用ajax避免了整页数据的刷新,也减少了请求等待的时间,提高了用户体验.
二.ajax传参的两种格式
假设有如下表单,需要将这些表单用ajax传参的方式传给后台,该怎么做呢…
我们知道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>
总结
来源:https://blog.csdn.net/weixin_42161670/article/details/116611819
猜你喜欢
- 在go语言的源码中,会发现很多,代码只有函数签名,却看不到函数体,如:// src/os/proc.go 68行func runtime_b
- 格式getopt(args, options[, long_options])1.args表示要解析的参数. 2.options表示脚本要识
- 1.前言选项(Options)模式是对配置(Configuration)的功能的延伸。在12章(ASP.NET Core中的配置二)Conf
- 接着上一篇学习:https://www.jb51.net/article/70528.htm七、MySQL数据库Schema设计的性能优化高
- 本文实例讲述了JS弹出窗口插件zDialog简单用法。分享给大家供大家参考,具体如下:因为没有元素可以显示到Frameset上面去,所以重新
- 读视频和写视频一直由于编解码的问题给程序员造成很多麻烦。对此进行了一些探索。用Python读取视频有两种主要方法,分别是基于imageio库
- 问题描述有些小伙伴在使用python做GUI界面的时候可能想添加这么一个小功能,就是在界面的某个角落动态的显示当前的时间,本文将介绍具体方法
- 在我们做搜索的时候经常要用到模糊查询 (注:其中name1,name2,name3,name4为数据库字段) 1.方法 sql="
- 前言我承认我不是一个爱整理桌面的人,因为我觉得乱糟糟的桌面,反而容易找到文件。哈哈,可是最近桌面实在是太乱了,自己都看不下去了,几乎占满了整
- 文章举例说明一下在 vue 中如何更好的监听浏览器事件。原文介绍了一种新增 vue 实例的方法,单独监听事件。这样代码书写较为简练,容易管理
- 在XML解析方面,Python贯彻了自己“开箱即用”(batteries included)的原则。在自带的标准库中,Python提供了大量
- 本文实例讲述了python实现数值积分的Simpson方法。分享给大家供大家参考。具体如下:#coding = utf-8#simpson
- 一、变量1.变量Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量就是变
- 今天介绍下用 Python 去除 PDF (图片)的水印。思路很简单,代码也很简洁。首先来考虑 Python 如何去除图片的水印,然后再将思
- 1. 整体思路首先我们来梳理下整体上的实现思路,首先一点:整体思路和 vhr 一模一样。考虑到有的小伙伴可能已经忘记 vhr 中前端动态菜单
- 我们可以利用 Cookie collection 来刪除客户端的Cookies: <%
- 我把数据库操作类整理了一下,它包含了常用的数据库操作,由三种方式:简单的SQL拼接字符串的形式,SQL语句使用参数的形式和存储过程的形式,每
- 题目:给定两个自然数,求这两个数的最大公约数。分析:单看题目的话,非常简单,我们可以循环遍历自然数,如果能够整除两个自然数,就把这个数记下来
- 链表链表(linked list)是由一组被称为结点的数据元素组成的数据结构,每个结点都包含结点本身的信息和指向下一个结点的地址。由于每个结
- 前面已经了解了关于PL/SQL编程的基础,本文将结合一个案例来加深对这些知识点的理解。一. 案例介绍 某数据库有两张表,是关于某公司员工资料