前端通过Jquery封装Ajax发送post请求,上传⽂件携带参数
需求:通过Ajax的POST请求上传⽂件并携带参数,后端接⼝需要的参数是:⼀个pdf⽂件和⼀个⽤户名
jquery下载超大文件先直接上代码
//html
<form id="uploadForm" enctype="multipart/form-data">
<input id="pdfFile" type="file" name="pdfFile"class="choose_file"/>
</form>
<button id="upload">上传⽂件</button>
//enctype就是encodetype就是编码类型的意思
//默认情况下,enctype的值是application/x-www-form-urlencoded,不能⽤于⽂件上传,只有使⽤了multipart/form-data,才能完整的传递⽂件数据
//js
$("#upload").on('click',function(){
plsql激活工具const formData =new FormData($('#uploadForm')[0]);//将选择上传的name="pdfFile"的⽂件赋值给formDatawindows虚拟机下载linux系统
formData.append("username","admin");//接⼝还需要⼀个⽤户名参数,通过append附加到formData上
//formdata.append('name','value'); //使⽤append的⽅法为 formdata 对象赋值
//千万不能直接把参数和⽂件放在下⾯post请求的data⾥⾯,data就是整个formData
$.ajax({
type:'post',
editplus下载安装url:'/apis/first/*',
data: formData,
processData:false,
contentType:false,
dataType:'json',
success:function(res){
console.log(res);
绿松石对身体有什么好处},
error:function(){
console.log('err');
idea项目运行时不到jar包}
});
});
Ajax属性:cache、processData、contentType
① cache:缓存
当发起⼀次请求后,会把获得的结果以缓存的形式进⾏存储,当再次发起请求时,如果 cache 的值是 true ,那么会直接从缓存中读取,⽽不是再次发起⼀个请求了。
从 cache 的⼯作原理可以得出,cache 的作⽤⼀般只在 get 请求中使⽤。
② processData:处理数据
默认情况下,processData 的值是 true,其代表以对象的形式上传的数据都会被转换为字符串的形式上传。⽽当上传⽂件的时候,则不需要把其转换为字符串,因此要改成false
③ contentType:发送数据的格式
和 contentType 有个类似的属性是 dataType , 代表的是期望从后端收到的数据的格式,⼀般会有 json 、text……等,⽽ contentType 则是与 dataType 相对应的,其代表的是 前端发送数据的格式,默认值:application/x-www-form-urlencoded,代表的是 ajax 的 data 是以字符串的形式 如 id=2019&password=123456使⽤这种传数据的格式,⽆法传输复杂的数据,⽐如多维数组、⽂件等
Jquery的ajax的设置机制为若没有content-type属性,则默认设置为 application/x-www-form-urlencoded; charset=UTF-8 contentType: false 设置的⽬的是让ajax不要操作content-type
⼩⽩⾃⼰写着记录下学习笔记,欢迎⼤佬指正
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论