IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 前后端交互 -> 正文阅读

[JavaScript知识库]前后端交互

ajax

  • 朝后端发送请求的方式:
请求方式请求类型
浏览器输入url地址get
a标签href属性get
form表单get/post
ajaxget/post
  • ajax的请求格式:
$.ajax({
	url:'', 	<!-- 不写即朝当前地址提交 -->
	type:'post',	<!-- 不指定默认get请求 -->
	data:{'d1':$('#d1').val()},
	dataType:true,		<!-- 自动反序列化json格式的数据  -->
	success:function(args){
		alert(args)
		
	}
})

后端返回json格式数据:

from django.http import JsonResponse

return JsonResponse(dic)

前后端传输数据的编码格式

  • Get请求:url?username=zhang&password=123456
  • Post请求:urlencoded、formdata、json三种编码格式,form、ajax两种传输方式
form表单发送三种格式数据
urlencoded(默认)所有数据都在request.Post中
formdata普通键值对在request.Post中,文件在request.Files
jsonform表单无法发送此类数据

一定要说发什么格式的数据,就发什么格式的数据

ajax发送三种格式数据
urlencoded(默认)所有数据都在request.Post中
formdata需要借助js内置对象FormData,具体代码见下方
json前端要在ajax请求里面加参数contentType:'application/json',同时前端数据要用JSON.stringfy处理,数据在后端存放在request.body

request对象方法补充:

  1. request.is_ajax()判断当前请求是否是ajax请求
  2. json.loads()括号内如果传入了一个二进制格式的数据,那么内部将自动解码再反序列化
# 前端
$('#d3').on('click', function(){
	# FormData对象既可以添加普通键值对,也可添加文件对象
	let formDataObj = new FormData();
	# 普通键值对
	formDataObj.append('username', $('#d1').val())
	# 文件对象
	formDataObj.append('myfile',$('d2')[0].files[0])
	# 将对象基于ajax发送
	$.ajax({
		url:'',
		type:'post',
		data:formDateObj,
		# ajax发送文件必须指定的两个参数
		contentType:false, # 不需要使用任何编码,django可以自动识别formdata对象,并将数据封装到request对象的POST与FILES中
		processData:false, # 告知浏览器不要对数据进行任何处理
		success:function(args){
			
		}
	})
})


# 后端
def func():
	if request.is_ajax():
		if request.method == 'POST':
			print(request.POST)
			print(request.Files)
	return render(request, 'index.html')

django自带的序列化组件

from django.core import serializers
user_queryset = models.User.objects.all()
res = serializers.serialize('json', user_queryset)

一些小点

  • 前端利用{% for i in dic %}生成的表格,若要添加删除按钮,可以给删除按钮添加自定义属性delete_id={{ obj.pk }},这样就可以方便的绑定删除函数了
  • sweetalert的二次确认弹框,汉字太大的解决方法,找到显示不完全的汉字,查看css属性,加个padding-top:10px即可
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-09 11:33:50  更:2021-12-09 11:35:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:56:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码