在用nodejs + expressjs + multer做服务端上传处理的时候,控制台一直报错 错误

谷歌之后发现Boundary这个东西大概用途是在上传体中用来分割每个值的一个分隔符,如: Boundary用途 的红框中的内容,上图上传正确的样子。

为什么会缺少这一部分呢???? 问题出在了我前端是使用jquery直接使用ajax来发送formData作为上传的手段,但是jquery的ajax做了很多兼容性的包装,其中影响了请求的有contentTypeprocessData这两个属性:

  • contentType:默认使用application/x-www-form-urlencoded; charset=UTF-8格式来发送消息体,但是上传的时候需要使用multipart/form-data类型,但是我们能把它写死为multipart/form-data,因为这样就会出现上述的找不到Boundary的错误,正确的做法是把这个设置为false
  • processData:这个属性的作用是默认把我们的消息体转换成默认的x-www-form-urlencoded格式,但是前面已经说明了我们上传的时候是不会使用这种格式的,所以把这个属性设置为false

参考链接 SIMPLE FILE UPLOADS USING JQUERY & AJAX

版权声明:本文为博主原创文章,未经博主允许不得转载,本文首发于xlaoyu