关于ajax的processData,百度了一下有的博客写

    这里其实是错的,默认值是为true,但是设置为true的时候,jquery 会将数据序列化,所以使用 ajax 上传文件时,这里建议使用processData: false

    1. $.ajax({
    2. url:`${_this.url}/yoteam/2/services/WuChangPipe/professions/urban/case/upload?token=${token}&t=${time}&number=&field=`,
    3. data:sendData,
    4. type:"POST",
    5. contentType:false,
    6. processData:false,
    7. success:function(res){
    8. res = JSON.parse(res)
    9. params.form['上报现场多媒体'] = res.fileUrl
    10. params = JSON.stringify(params)
    11. _this.setForm(token,params)
    12. }
    13. })


    官方文档解释
    image.png
    这里翻译过来的大概意思是:
    默认情况下,作为对象传递给data选项的数据(从技术上讲,不是字符串)将被处理并转换为查询字符串,以适合默认的内容类型“ application / x-www-form-urlencoded” 。 如果要发送DOMDocument或其他未处理的数据,请将此选项设置为false。

    简单来说,当processData: true的时候,jquery会序列化数据。当processData: false的时候,jquery不会对数据进行处理。
    3. 最后:百度的也不一定是对的,建议还是去官方文档看准确