我在Ajax中传递formData,如何在Java POST中处理?
formData.append(file.name, file);
formData.append('para', 'true');
$.ajax({
url: 'example.com/test',
type: 'POST',
data: formData,
dataType: 'json',
processData: false,
contentType: false,
})
和Java,
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("application/json")
@Path("test")
public getJSONFromMultipart(@Multipart(value = "para") boolean test, @Multipart(value = "uploadedFile") Attachment att, @Context final UriInfo info) { ... }
我收到MULTIPART_FORM_DATA的编译错误,因此多部分错误。这是调用formData的正确方法吗?
答案 0 :(得分:0)
您在MediaType
使用了哪个套餐? MediaType
存在于Java EE jar中,但也存在于Spring Web jar中。
这些不是同一类型。
在Spring课程中:org.springframework.http.MediaType
public class MediaType{
...
public final static MediaType MULTIPART_FORM_DATA;
}
在Java EE类中:javax.ws.rs.core.MediaType
public class MediaType{
...
public final static String MULTIPART_FORM_DATA= "multipart/form-data";
}
为什么不在@Produces
和@Consumes
中使用常量?
import javax.ws.rs.core.MediaType;
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces(MediaType.APPLICATION_JSON )
当您以Java EE方式声明处理程序时,在选择导入时应该小心。