HTML5 FormData API发送multipart / form-data请求.它最初设计为能够通过ajax上传文件,使用新版本2 XMLHttpRequest.以前的版本无法上传文件.
默认情况下,request.getParameter()仅识别application / x-www-form-urlencoded请求.但是你要发送一个multipart / form-data请求.您需要使用@MultipartConfig注释您的servlet类,以便您可以通过request.getParameter()获取它们.
@WebServlet
@MultipartConfig
public class YourServlet extends HttpServlet {}
或者,当您还没有使用Servlet 3.0时,请使用Apache Commons FileUpload.有关这两种方法的更详细答案,请参阅:How to upload files to server using JSP/Servlet?
如果您根本不需要上传文件,请改用“标准”XMLHttpRequest方法.
var xhr = new XMLHttpRequest();
var data = "firstName=" + encodeURIComponent(firstName)
+ "&lastName=" + encodeURIComponent(lastName);
xhr.open("POST", targetLocation, true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data);
这样,您的servlet上就不再需要@MultipartConfig了.
也可以看看: