如何将Ajax中的FormData和JSON对象传递给Spring MVC Controller?

幸运的

我需要在ajax调用中同时传递FormData和JSON对象,但是却收到400 Bad Request错误。

[artifact:mvn]  org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Could not read document: Unexpected character ('-' (code 45)) in numeric value: expected digit (0-9) to follow minus sign, for valid numeric value
[artifact:mvn]  at [Source: java.io.PushbackInputStream@3c0d58f6; line: 1, column: 3]; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character ('-' (code 45)) in numeric value: expected digit (0-9) to follow minus sign, for valid numeric value
[artifact:mvn]  at [Source: java.io.PushbackInputStream@3c0d58f6; line: 1, column: 3]

JS:

var formData = new FormData(form[0]);
//form JSON object
var jsonData = JSON.stringify(jcArray);
$.ajax({
        type: "POST",
        url: postDataUrl,
        data: { formData:formData,jsonData:jsonData },
        processData: false,
        contentType: false,
        async: false,
        cache: false,
        headers: { 
            'Accept': 'application/json',
            'Content-Type': 'application/json' 
        },
        success: function(data, textStatus, jqXHR) {
        }
});

控制器:

@RequestMapping(value="/processSaveItem",method = RequestMethod.POST")
public @ResponseBody Map<String,String> processSaveItem(
                                  @RequestBody XYZClass result[])

}

有一个类似的问题,jQuery在ajax调用中发送表单数据和json对象,而我正在尝试相同的方法。

如何在单个ajax请求中同时发送FormData和JSON对象?

幸运的

我通过在Ajax POST中将JSON字符串与FormData对象附加在一起来解决。

var jsonObjectData = JSON.stringify(jcArray);
formData.append("jsonObjectData",jsonObjectData);

在控制器中,您可以像处理其他表单数据值一样以常规方式访问它。

request.getParameter("jsonObjectData");

现在您将拥有Stringified JSON,并且可以将json解析为Java对象

如何使用Jackson将JSON字符串解析为数组

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法使用Ajax将多部分文件从JSP传递到Spring MVC中的Controller

Spring MVC:如何获取Controller的文件路径?

如何将嵌套的JSON传递给Spring Controller

无法将Ajax映射到Spring MVC Controller

如何将javascript对象传递给C#MVC 4控制器

通过AJAX调用将HTML传递给C#MVC Controller。500错误

如何将多个对象传递给MVC中的视图?

在MVC Controller中获取img

在Spring MVC Controller上处理异常

如何使用Ajax调用将列表传递给Spring MVC Controller

如何将非默认构造函数对象传递给Controller?

在Spring MVC Controller中使用CookieParam批注

如何将<div>值传递给ASP.Net MVC中的另一个Controller?

了解Controller单例行为Spring MVC

ASP.NET MVC如何将JSON对象从View传递到Controller作为参数

Spring MVC Controller bean配置

将特定值从列表传递到Controller Spring MVC

使用MockMVC测试Spring 4.0.3 Controller(MVC)

如何将Controller的FormCollection和类类型对象传递给操作

如何防止MVC Controller中的并发访问?

Ajax不将字符串或数组传递给MVC Controller

如何将DateTime参数从View传递到ASP.net MVC5中的Controller?

如何扩展Spring MVC Controller注释?

如何将强类型的复杂对象传递给MVC3中的Ajax方法

在Spring MVC Controller中设置区域设置

如何将JSON对象从ActionMethod作为参数传递给MVC中的其他Action方法?

Spring MVC,将json对象传递给控制器并返回设置了模型属性的视图

如何将特定行中的两个值传递给 Controller asp.net core mvc?

如何将对象传递给 ASP.NET Core MVC 中的操作方法