我构建了一个允许上传文件或上传列表作为输入的 servlet。到目前为止,我已经通过将 servlet 设置为接受 multipart/form-data 来处理它,所以即使没有文件,我也会将列表作为一部分读取。
我现在正在尝试调用此 servlet 以通过 JQuery AJAX 方法而不是通过表单上传列表。如果我尝试通过该方法正常上传列表,我会得到:
org.apache.tomcat.util.http.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/x-www-form-urlencoded; charset=UTF-8
如果我将 contentType 设置为 multipart/form-data ,如下所示:
$.ajax({
url: someUrl,
type: 'POST',
contentType: 'multipart/form-data',
data: {list: inputList}
});
我收到了这个错误:
org.apache.tomcat.util.http.fileupload.FileUploadException: the request was rejected because no multipart boundary was found
我的问题是,是否有某种方法可以将 servlet 配置为接受两种内容类型,或者是否有某种方法可以编写 ajax 数据以上传多部分/表单数据?
我知道使用 FormData API 上传 multipart/form-data 很简单,但我需要支持 IE9,所以这不是一个选项。