Ajax异步交互

Ajax基本语法:

  $.ajax({
    url:'', // 控制提交地址 规律与form标签的action参数一致
    type:'post', // 控制请求方式
    data:{'i1':i1Val,'i2':i2Val}, // 发送的数据
    success:function (args) {
    // 异步回调函数
    {#alert(args)#}
    // 查看input框并且写入数据
    $('#i3').val(args)
    }
    })

参数补充:

  contentType

  前后端数据传输格式主要有三种

  application/x-www-form-urlencoded
  multipart/form-data
  application/json

  朝后端发送数据的时候针对不同的方式后端有不同的处理措施

 

  form表单默认是urlencoded编码格式
    数据格式username=jason&password=234
    django后端针对符合urlencoded格式的数据会自动解析并封装到request.POST中
    django后端针对form-data格式的数据文件自动封装到request.FILES中 普通的符合urlencoded还是封装到request.POST中

  

  

# ajax默认是urlencoded编码格式
1.ajax发送json格式数据
django后端不做任何处理 直接以二进制形式存放在request.body中
data
contentType
2.ajax发送文件数据
$('#d1').on('click',function () {
  // 1.先生成一个内置对象
  let formDataObj = new FormData();
  // 2.添加符合urlencoded格式的普通键值对数据
  formDataObj.append('name','jason');
  formDataObj.append('password',123);
  // 3.添加文件数据
  formDataObj.append('myfile',$('#myfile')[0].files[0]);
  // ajax发送给后端
  $.ajax({
    url:'', // 控制提交地址 规律与form标签的action参数一致
    type:'post', // 控制请求方式
    data:formDataObj, // 发送的数据

    // 额外指定两个参数
    contentType:false, // 不采用任何编码 后端能够直接识别formdata对象
    processData:false, // 不处理formdata对象 直接发送即可

    success:function (args) {
    }
    })
    });

 

  

  dataType
  django后端如果使用JsonResponse给回调函数返回json格式字符串
  回调函数会自动反序列成js中的自定义对象
  django后端不使用JsonResponse而是自己通过json模块序列化的数据 回调函数接收到之后不会自动反序列

 

posted @ 2021-08-30 15:59  草木秋死  阅读(53)  评论(0)    收藏  举报