ajax:
时间:2019-12-27
本文章向大家介绍ajax:,主要包括ajax:使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
AJAX
js技术,发送请求的一种方式.
特点:
1. 异步
-
局部刷新
-
传输的数据量小
$.ajax({
url: '/test/', // url路径
type: 'post', // 请求方式
data: { // 请求数据
name: 'alex',
age: 84,
hobby: JSON.stringify(['吐口水', 'TESA', '姑娘', '毒鸡汤']),
},
success: function (res) { // 响应成功的回调函数
console.log(res);
console.log(res.status);
console.log(typeof(res))
},
error:function (res) { // 响应失败的回调函数
console.log(res)
}
})
上传文件
$('#b1').click(function () {
var form_obj = new FormData(); // enctype="multipart/form-data"
form_obj.append('name', 'alex')
form_obj.append('f1', $('#f1')[0].files[0])
$.ajax({
url: '/upload/',
type: 'post',
data: form_obj,
processData: false, // 不需要处理编码方式
contentType: false, // 不需要处理contentType请求头
success:function (res) {
alert(res)
}
})
})
CSRF中间件
-
process_request方法:
从cookie中获取csrftoken的值,放到request.META中
-
process_view方法:
-
判断视图是否使用csrf_exempt装饰器,使用了就不校验
-
判断请求方式是否是'GET', 'HEAD', 'OPTIONS', 'TRACE',如果是,也不校验
-
进行校验:
-
csrf_token = request.META.get('CSRF_COOKIE') # cookie中获取csrftoken的值
-
-
请求方式是POST
-
request_csrf_token = request.POST.get('csrfmiddlewaretoken', '')
-
获取不到,从头中获取x-csrftoken的值 = >request_csrf_token
-
进行比较csrf_token request_csrf_token的值:
-
对比成功 接收请求
-
对比不成功 拒绝请求
-
-
-
前提
有csrftoken的cookie:
-
{% csrf_token %}
-
from django.views.decorators.csrf ensure_csrf_cookie
方式一:
给data中添加csrfmiddlewaretoken的键值对
方式二:
给headers添加x-csrftoken的键值对
headers: {
'x-csrftoken': $('[name="csrfmiddlewaretoken"]').val()},
方式三:
原文地址:https://www.cnblogs.com/zhang-da/p/12109511.html
- Oracle 12c DG新特性Far Sync(r10笔记第67天)
- iOS微信特殊字符保护方案
- 简单易学的机器学习算法——谱聚类(Spectal Clustering)
- oracle数据库 如何查询某个表的约束条件
- 结构体存入文件并且取出
- 【Go 语言社区】使用 Redis 实现排行榜功能
- 使用12c PDB整合环境的总结 (r10笔记第66天)
- 【Go 语言社区】Redis(ZADD)简单排名
- C得到文件的大小
- 【Go 语言社区】Go语言实现选择法排序实例
- 【Go 语言社区】Go语言转换所有字符串为大写或者小写的方法
- Go语言按字节截取字符串的方法
- Go语言中字符串的查找方法小结
- 优化算法——遗传算法
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP 魔术方法、序列化与对象复制
- PHP 静态属性和静态方法
- 通过 Trait 水平扩展 PHP 类功能
- 通过对象组合水平扩展 PHP 类功能
- DO,DTO,VO,POJO 你知道吗?
- Python 爬虫进阶必备 | AES-CBC 的 Pyhon 实现要怎么写?给代码就完事了
- Babel:下一代Javascript语法编译器
- 如何定位及优化SQL语句的性能问题
- Java线程安全如何进行原子操作,一致性的最佳实践
- 冒泡排序
- 现有CDP-DC集群启用Auto-TLS
- 打卡001/这是一篇软文
- 技术角 | 在CentOS 8上使用Elastic Stack: Elasticsearch/Kibana 7.8部署与认证配置
- 技术角 | 解决ES SQL命令行启动报错 ./x-pack-env: No such file or directory
- Linux常用命令归类总结