关于ajax的processData,百度了一下有的博客写
这里其实是错的,默认值是为true,但是设置为true的时候,jquery 会将数据序列化,所以使用 ajax 上传文件时,这里建议使用processData: false
$.ajax({
url:`${_this.url}/yoteam/2/services/WuChangPipe/professions/urban/case/upload?token=${token}&t=${time}&number=&field=`,
data:sendData,
type:"POST",
contentType:false,
processData:false,
success:function(res){
res = JSON.parse(res)
params.form['上报现场多媒体'] = res.fileUrl
params = JSON.stringify(params)
_this.setForm(token,params)
}
})
官方文档解释
这里翻译过来的大概意思是:
默认情况下,作为对象传递给data选项的数据(从技术上讲,不是字符串)将被处理并转换为查询字符串,以适合默认的内容类型“ application / x-www-form-urlencoded” 。 如果要发送DOMDocument或其他未处理的数据,请将此选项设置为false。
简单来说,当processData: true的时候,jquery会序列化数据。当processData: false的时候,jquery不会对数据进行处理。
3. 最后:百度的也不一定是对的,建议还是去官方文档看准确