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相关推荐

  1. ajax怎么发送数据给php,ajax怎么发送数据给php

    在网上看了很久,发现数据的利用ajax提交数据到后台其实很简单,但是很多讲解的并不清楚,对于初学者来说,很多真的是看着有点糊涂,拿来直接用,又想去了解怎么回事,其实利用ajax提交数据到后台是非常的简 ...

  2. form表单ajax提交json数据

    前端页面: <form id="userInfo" ><div class="weui-cell"><div class=&quo ...

  3. ashx文件与ajax,ashx文件猎取$.ajax()方法发送的数据_

    <ashx文件猎取$.ajax()方法发送的数据_>由会员分享,可在线阅读,更多相关<ashx文件猎取$.ajax()方法发送的数据_(7页珍藏版)>请在人人文库网上搜索. 1 ...

  4. 如何在客户端发送ajax请求,ajax - 从服务器(nodejs)发送数据到客户端(ajax请求)

    如何使用nodejs将数据从服务器发送到客户端? 所以基本上我通过点击一个按钮来调用这个函数 javascriptfunction createStuff(tid) { $.ajax({ type: ...

  5. arduino向串口发送数据时掉包_[技术]清楚简单,一种串口触摸屏的开发流程和方法介绍...

    1.什么是串口触摸屏 触摸屏是工业控制上很常见的人机交互部件,很多设备.系统都在使用它,它至少有两个功能:显示,触摸控制. 串口触摸屏是采用串行数据通信协议进行数据交换的触摸屏,具有简单.可靠.易于操 ...

  6. JS实现的ajax发送数据重复

    最近在做一个网页聊天室,但是在用ajax实现异步处理的时候,向服务器发送数据发送了两次,导致,我说一句会有两句回复. 先来看一下代码,问题主要还是出现在前端: <form id="da ...

  7. jquery 获取键值对中最大值_jQuery的AJAX发送数据键值对

    在我的aspx页面,我对JS是这样的: -jQuery的AJAX发送数据键值对 $("#btnLoad").click(function() { var dataForAjax = ...

  8. ashx 获取上传的文件_ashx文件获取$.ajax()方法发送的数据

    今天在使用Jquery的ajax方法发送请求时,发现在后台中使用ashx文件无法接收到ajax方法中传递的参数,上网查了一下原因后发现了问题所在,原来是我在$.ajax方法中指明了"cont ...

  9. Ajax向node发送数据时,响应值打印在控制台一闪而过

    目录 问题描述 具体代码 问题原因 问题解决 1.可以直接这样 2.还可以 问题描述 用ajax向后台发送数据,后台再进行响应,把响应的值打印在控制台上,但是这个值闪了一下就没有了. 具体代码 后端n ...

最新文章

  1. 多线程:pthread_cond_wait 实现原理
  2. 如何快速融入团队(三)
  3. 灰色的rgb值_一行代码实现图片的灰色效果
  4. DHCP服务搭建(1)
  5. MyBatis复习(九):MyBatis整合C3P0连接池
  6. 计算机网络管理员高级技师证书,计算机网络管理员(高级技师)职业资格考核标准详细分析.doc...
  7. “Head First 设计模式“ :策略模式
  8. 小程序triggerevent 传参_开源wwto:小程序跨端迁移解决方案——微信转其他小程序...
  9. svg的viewport和viewbox
  10. 排名:开源免费的小程序商城源码-LaiKe
  11. SSH2开发简易的购物网站源代码下载
  12. k8s1.18-kubeadm安装手册
  13. 【单片机仿真】(一)Proteus8.9 安装教程
  14. SHT30温湿度传感器工作原理
  15. 运算放大器stb仿真与闭环增益备忘
  16. u盘的大小在计算机无法显示,U盘格式化后插入电脑打不开,不显示U盘大小怎么解决?...
  17. xgboost时间序列预测matlab,LightGBM和XGBoost实现时间序列预测(2019-04-02)
  18. 在CentOs7上部署Gunicorn
  19. 华为防火墙企业双出口专线,配置策略路由实现多个ISP出接口的智能选路和双向NAT
  20. python爬虫利用线程池下载视频

热门文章

  1. Word打不开,如何修复word文档?
  2. 第二十五章补充内容 5 不能为0的变量
  3. XenServer XAPI简介
  4. Npgsql 6.0.2 发布,赶紧升级!!!
  5. Win11用户增长迅速!你升了吗?
  6. .NET Core 和 .NET Framework 启动可执行文件的差别
  7. 开源项目barcodelib-C#条形码图像生成库
  8. 说说 RabbiMQ 的应答模式
  9. 持续交付二:为什么需要多个环境
  10. BCVP开发者说第一期:Destiny.Core.Flow