今天在帮人读代码的时候遇到了一点小问题。使用jQuery上传带有文件的表单时会出现一些问题。
首先,因为使用了FormData,所以必须在传入$.ajax的参数中配置processData: false。
否则,将引发非法调用异常,因为默认情况下,jQuery将处理传入数据字段的数据。
官方文件对此进行了解释:
其次,注意请求的Content-Type头,默认为application/x-www-form-URL encoded;Charset=UTF-8,是“a=Ab=B”的格式。但是使用FormData的时候,就不行了。
将内容类型字段添加到参数中,并将其值设置为false。如果jQuery版本低于1.6,则手动设置为多部分/表单数据。有关具体说明,请参考文档:
我以前用的是原生的XMLHttpRequest,所以没有遇到过这种问题。既然见面了,就要解决。因此,记录下来以备将来搜索。
以上就是边肖在使用jQuery.ajax上传带有文件的表单时给大家介绍的问题,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!