js提交数据

一、from表单提交

<form action="" method="post" enctype="multipart/form-data"> <input type="submit" class="btn btn-info">
属性:

  • action:是form表单提交数据的路径,如果我们没有设置action属性,那么默认的表单还是提交给当前页面
  • method:是form提交数据的方式常见有'post','get'
  • enctype: 就是encodetype就是编码类型的意思。默认情况下,enctype的值是application/x-www-form-urlencoded,不能用于文件上传,只有使用了multipart/form-data,才能完整的传递文件数据。application/x-www-form-urlencoded不是不能上传文件,是只能上传文本格式的文件,multipart/form-data是将文件以二进制的形式上传,这样可以实现多种类型的文件上传。
  • submit:点击传输数据到action的路径

二、Ajax提交数据

1以new FormData()提交

$("#id_commit").click(function () { let formDataObj= new FormData(); //1. 添加普通的键值对 {#console.log($('#myform').serializeArray()) //[{},{}] 只包含普通的价值对#} $.each($('#myform').serializeArray(),function (index,obj) { formDataObj.append(obj.name,obj.value) }) // 2. 添加文件属性 formDataObj.append('avatar',$('#myfile')[0].files[0]); // 3 .发送AJAX请求{ url:"", type:"post", data: formDataObj, //需要指定两个特定参数 contentType: false, processData: false, success: function (args){}
属性:
data:存放后端需要的书据
success:成功后接受并处理展示后端传输的数据
contentType:它是代表发送信息至服务器时内容编码类型,通俗点说就是告诉服务器从浏览器提交过来的数据格式。默认值为contentType = "application/x-www-form-urlencoded".在默认情况下,内容编码类型满足大多数情况。具体了解:https://segmentfault.com/a/1190000007207128?utm_source=tag-newest
processData:在使用jQuery的$.ajax()方法的时候参数processData默认为true(该方法为jQuery独有的)
默认情况下会将发送的数据序列化以适应默认的内容类型application/x-www-form-urlencoded
如果想发送不想转换的的信息的时候需要手动将其设置为false

在遇到的是传输的是blob对象的时候就是不需要将传输的数据序列化,一般的还有类似DOM树等

2 不以FormData()提交

$('#id_commit').click(function () { $.ajax({ url:'', type:'post', data: { 'username':$('#username').val(), 'password':$('#password').val(), 'code':$('#id_code').val(), 'csrfmiddlewaretoken':'{{ csrf_token }}' }, success: function (args) {}

posted @   苍白之躯  阅读(362)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示