Django10:Ajax介绍/发送数据/SweetAlert
Ajax
异步提交
局部刷新
发送方式
1. 浏览器输入url,按enter get
2.a标签href属性 get
3.form表单 get/post
4. ajax get/post
ajax 不是编程语言,是先有标准的新方法。
只学习jQuery封装之后的版本(不学原生)
$(".del").on("click", function () {// 向后端发送删除的请求$.ajax({// 1.指定发送后端url: "/delete/", //不写,就是当前地址//请求方式type: "post", //不指定,默认get,都是小写// 数据data: {"id":delId},// 回调函数:返回结果时自动触发,args是后端返回的结果success:function (arg) {swal(arg, "你可以跑路了!", "success");$trEle.remove();});});})
后端
def index(request):if request.method == 'POST':back_dic = {'msg':'hahaha'}return HttpResponse(json.dumps(back_dic)) # 要自己手动反序列化return JsonResponse(back_dic) # 前端能自动反序列化return render(request,'index.html')
ajax补充:
dataType:'JSON'如果使用HttpResponse ,会自动转换json格式
前后端交互的数据编码格式
form表单默认是urlencoded编码格式传输数据
urlencoded数据格式:username=jason&password=123django后端针对该格式的数据 会自动解析并帮你打包到request.POST中formdata数据格式:django后端针对符合urlencoded编码格式数据(普通键值对)还是统一解析到request.POST中而针对formdata文件数据就会自动解析放到request.FILES中application/jsondjango后端针对json格式数据 并不会做任何的处理而是直接放在request.body中
ajax发送数据
默认urlencoded编码格式
前后端数据交互 编码格式与数据格式一定要一致
声明什么编码格式,就用传什么格式
ajax发送json格式
$('#d2').on('click',function () {$.ajax({url:'',type:'post',contentType:'application/json', // 修改content-Type参数data:JSON.stringify({'username':'jason','password':123}), // 将数据序列化成json格式字符串success:function (data) {alert(data)}})})
补充:request.is_ajax();判断是不是ajax请求
前端不会处理json格式的数据,而是直接塞进request.body中。我们自己处理json格式数据,拿到的是二进制json
def ab_ct(request):if request.method == 'POST':# 自己处理json格式数据json_bytes = request.body# 扩展 json.loads能够自动解码并序列化json_dict = json.loads(json_bytes)print(json_dict,type(json_dict))print(request.POST)print(request.FILES)return render(request,'ab_ct.html')
ajax发送json格式数据注意点
1.contentType:'application/json',
2. data 数据是真正的json数据
3.django后端不会处理json数据,需要手动request.body获取和处理
ajax发送文件
ajax发送文件(******)内置对象FormData即发普通键值对也发文件// ajax发送文件数据 需要借助于内置对象$('#d3').click(function () {// 1 需要先生成一个内置对象var myFormData = new FormData();// 2 传普通键值对 当普通键值对较多的时候 我们可以利用for循环来添加myFormData.append('username','jason');myFormData.append('password',123);// 3 传文件myFormData.append('myfile',$('#i1')[0].files[0]); // 获取input框内部用户上传的文件对象// 发送ajax请求$.ajax({url:'',type:'post',data:myFormData,// 发送formdata对象需要指定两个关键性的参数processData:false, // 让浏览器不要对你的数据进行任何的操作contentType:false, // 不要使用任何编码格式 对象formdata自带编码格式并且django能够识别该对象success:function (data) {alert(data)}})})
SweetAlert
< script >
function Delete(obj) {var article_id = $(obj).attr("article_id"); {#console.log(article_id);#}swal({title: '确定删除吗?',text: '你将无法恢复它!',type: 'warning',showCancelButton: true,confirmButtonColor: '#d33',cancelButtonColor: '#3085d6',confirmButtonText: '确定!',}).then(function(value) {if (value.value) {$.ajax({url: "/JiaBlog/article/" + article_id + "/editor/delete/",type: 'POST',data: {csrfmiddlewaretoken: $("[name='csrfmiddlewaretoken']").val(),article_id: article_id,},success: function(result) {var status = result.result;if (status == 'success') {swal('删除成功!', '你的文件已经被删除。', 'success');} else {swal('出错啦。。。', "error"); //后端删除失败}setTimeout(function() {window.location.reload()},1000);}})} else {swal('已取消!', '', 'error')}})
}< /script>/
参考:
https://www.cnblogs.com/guyouyin123/p/12173020.html
https://blog.csdn.net/ssjdoudou/article/details/90727543
Django10:Ajax介绍/发送数据/SweetAlert相关推荐
- ajax怎么发送数据给php,ajax怎么发送数据给php
在网上看了很久,发现数据的利用ajax提交数据到后台其实很简单,但是很多讲解的并不清楚,对于初学者来说,很多真的是看着有点糊涂,拿来直接用,又想去了解怎么回事,其实利用ajax提交数据到后台是非常的简 ...
- form表单ajax提交json数据
前端页面: <form id="userInfo" ><div class="weui-cell"><div class=&quo ...
- ashx文件与ajax,ashx文件猎取$.ajax()方法发送的数据_
<ashx文件猎取$.ajax()方法发送的数据_>由会员分享,可在线阅读,更多相关<ashx文件猎取$.ajax()方法发送的数据_(7页珍藏版)>请在人人文库网上搜索. 1 ...
- 如何在客户端发送ajax请求,ajax - 从服务器(nodejs)发送数据到客户端(ajax请求)
如何使用nodejs将数据从服务器发送到客户端? 所以基本上我通过点击一个按钮来调用这个函数 javascriptfunction createStuff(tid) { $.ajax({ type: ...
- arduino向串口发送数据时掉包_[技术]清楚简单,一种串口触摸屏的开发流程和方法介绍...
1.什么是串口触摸屏 触摸屏是工业控制上很常见的人机交互部件,很多设备.系统都在使用它,它至少有两个功能:显示,触摸控制. 串口触摸屏是采用串行数据通信协议进行数据交换的触摸屏,具有简单.可靠.易于操 ...
- JS实现的ajax发送数据重复
最近在做一个网页聊天室,但是在用ajax实现异步处理的时候,向服务器发送数据发送了两次,导致,我说一句会有两句回复. 先来看一下代码,问题主要还是出现在前端: <form id="da ...
- jquery 获取键值对中最大值_jQuery的AJAX发送数据键值对
在我的aspx页面,我对JS是这样的: -jQuery的AJAX发送数据键值对 $("#btnLoad").click(function() { var dataForAjax = ...
- ashx 获取上传的文件_ashx文件获取$.ajax()方法发送的数据
今天在使用Jquery的ajax方法发送请求时,发现在后台中使用ashx文件无法接收到ajax方法中传递的参数,上网查了一下原因后发现了问题所在,原来是我在$.ajax方法中指明了"cont ...
- Ajax向node发送数据时,响应值打印在控制台一闪而过
目录 问题描述 具体代码 问题原因 问题解决 1.可以直接这样 2.还可以 问题描述 用ajax向后台发送数据,后台再进行响应,把响应的值打印在控制台上,但是这个值闪了一下就没有了. 具体代码 后端n ...
最新文章
- 多线程:pthread_cond_wait 实现原理
- 如何快速融入团队(三)
- 灰色的rgb值_一行代码实现图片的灰色效果
- DHCP服务搭建(1)
- MyBatis复习(九):MyBatis整合C3P0连接池
- 计算机网络管理员高级技师证书,计算机网络管理员(高级技师)职业资格考核标准详细分析.doc...
- “Head First 设计模式“ :策略模式
- 小程序triggerevent 传参_开源wwto:小程序跨端迁移解决方案——微信转其他小程序...
- svg的viewport和viewbox
- 排名:开源免费的小程序商城源码-LaiKe
- SSH2开发简易的购物网站源代码下载
- k8s1.18-kubeadm安装手册
- 【单片机仿真】(一)Proteus8.9 安装教程
- SHT30温湿度传感器工作原理
- 运算放大器stb仿真与闭环增益备忘
- u盘的大小在计算机无法显示,U盘格式化后插入电脑打不开,不显示U盘大小怎么解决?...
- xgboost时间序列预测matlab,LightGBM和XGBoost实现时间序列预测(2019-04-02)
- 在CentOs7上部署Gunicorn
- 华为防火墙企业双出口专线,配置策略路由实现多个ISP出接口的智能选路和双向NAT
- python爬虫利用线程池下载视频