微信二维码
微博二维码
qq号二维码

天津IT培训-ajax上传文件中设置contentType:false原因

夏磊银 2020.07.01 4708人浏览
ajax上传文件中设置contentType:false

contentType:发送信息至服务器时内容编码类型(告诉服务器从浏览器提交过来的数据格式)

默认值为contentType = "application/x-www-form-urlencoded"


ajax上传文件为什么设置false???


要想了解原因我们需要知道两点:


1.上传过程:先封装了一个 formData 对象,然后使用 post 方法将文件传给服务器,contentType = false

2.http上传文件问题

在 rfc1867 中为http添加了上传功能并限定 form 的 method 必须为 POST,enctype = “multipart/form-data” 

查看Request headers

天津IT培训-ajax上传文件中设置contentType:false原因

发现在 multipart/form-data 后面有boundary以及一串字符,这是分界符,后面的一堆字符串是随机生成的,目的是防止上传


文件中出现分界符导致服务器无法正确识别文件起始位置。multipart/form-data 请求是基于 http 原有的请求方式 post 而


来的。

请求头的不同,对于上传文件的请求,contentType = multipart/form-data是必须的

请求体不同,发送的每个字段内容之间必须要使用分界符来隔开

在 ajax 中 contentType 设置为 false 是为了避免 JQuery 对其操作,从而失去分界符,而使服务器不能正常解析文件。


分享到:
天津UI设计培训-CleanPNG免抠素材网站
  • 2020.11.30
  • 2024什么价格?天津平面设计/UI设计师就业实录
  • 2024.03.20