分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

Ajax使用formdata异步上传文件,报错the request was rejected because no multipart boundary was found

发布时间:2023-09-06 01:53责任编辑:彭小芳关键词:Ajax

基于jQuery的Ajaxs使用FormData上传文件要注意两个参数的设定

processData设为false

把processData设为false,让jquery不要对formData做处理,如果processData不设置为false,jquery会把formData转换为字符串。

contentType设为false

http发送multipart/form-data请求报文示例

POST /api/feed/ HTTP/1.1Accept-Encoding: gzipContent-Length: 225873Content-Type: multipart/form-data; boundary=OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBpHost: www.myhost.comConnection: Keep-Alive--OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBpContent-Disposition: form-data; name="lng"Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bit116.361545--OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBpContent-Disposition: form-data; name="lat"Content-Type: text/plain; charset=UTF-8Content-Transfer-Encoding: 8bit39.979006--OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBpContent-Disposition: form-data; name="images"; filename="/storage/wbavrx.jpg"Content-Type: application/octet-streamContent-Transfer-Encoding: binary这里是图片的二进制数据--OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBp--

  

注意Content-Type: multipart/form-data; boundary=OCqxMF6-JxtxoMDHmoG5W5eY9MGRsTBp ,参数boundary为请求参数之间的界限标识。

如果jquery请求设置了contentType,那么就会覆盖了formData的content-type,导致服务器在分隔参数和文件内容时是找不到boundary,报no multipart boundary was found错误

默认情况下jquery会把contentType设置为application/x-www-form-urlencoded。要jquery不设置contentType,则需要把contentType设置为false。

var formData = new FormData($("#uploadform")[0]);$.ajax({ ???url: actionUrl, ???type: ‘POST‘, ???data: formData, ???async: false, ???cache: false, ???contentType: false, ???processData: false, ???...});

  

Ajax使用formdata异步上传文件,报错the request was rejected because no multipart boundary was found

原文地址:https://www.cnblogs.com/zhangym118/p/9029269.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved