首页 > Web开发 > 详细

ajax:

时间:2019-12-27 21:16:08      阅读:82      评论:0      收藏:0      [点我收藏+]

AJAX

js技术,发送请求的一种方式.

特点:

 1. 异步
  1. 局部刷新

  2. 传输的数据量小

 $.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中间件

  1. process_request方法:

    从cookie中获取csrftoken的值,放到request.META中

  2. process_view方法:

    1. 判断视图是否使用csrf_exempt装饰器,使用了就不校验

    2. 判断请求方式是否是‘GET‘, ‘HEAD‘, ‘OPTIONS‘, ‘TRACE‘,如果是,也不校验

    3. 进行校验:

      1. csrf_token = request.META.get(‘CSRF_COOKIE‘) # cookie中获取csrftoken的值

    4. 请求方式是POST

      1. request_csrf_token = request.POST.get(‘csrfmiddlewaretoken‘, ‘‘)

      2. 获取不到,从头中获取x-csrftoken的值 = >request_csrf_token

      3. 进行比较csrf_token request_csrf_token的值:

        1. 对比成功 接收请求

        2. 对比不成功 拒绝请求

 

前提

有csrftoken的cookie:

  1. {% csrf_token %}

  2.  from django.views.decorators.csrf ensure_csrf_cookie

方式一:

给data中添加csrfmiddlewaretoken的键值对

方式二:

给headers添加x-csrftoken的键值对

 headers: { 
 ‘x-csrftoken‘: $(‘[name="csrfmiddlewaretoken"]‘).val()},

方式三:

导入文件

ajax:

原文:https://www.cnblogs.com/zhang-da/p/12109511.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!