【发布时间】:2014-04-16 18:58:56
【问题描述】:
我有以下 JSON
["2848","241"]
通过使用以下 jquery 代码
var list = [];
$.each($("input[class='selected']:checked"), function(){
list.push($(this).val());
});
我通过在 ajax 发布请求中使用以下内容将这些数据发送到我的 spring 控制器。
var jsonData = JSON.stringify(list);
我的spring控制器如下
@RequestMapping(value="/myurl", method = RequestMethod.POST)
public String sampleMethod(@RequestBody String jsonData){
Type dataType = new TypeToken<List<String>>(){}.getType();
List<String> myListObject = gson.fromJson(jsonData, dataType);
System.out.println(myListObject.size());
return "redirect:/someotherurl";
}
由于某种原因,我收到 500 个内部服务器错误,但在浏览器的控制台上没有堆栈跟踪或错误。请建议缺少什么。?
【问题讨论】:
-
检查您的服务器日志。你应该在那里看到一个堆栈跟踪。
-
我的日志中没有任何内容,我的 Eclipse Tomcat 控制台中也没有看到任何堆栈跟踪
-
如果您收到内部服务器错误,应该总是有错误。如果您真的找不到任何东西,请设置断点并单步执行您的
sampleMethod代码,直到找到错误为止。 -
是的,我这样做了,它总是在这里中断, List
myListObject = gson.fromJson(jsonData, dataType);....我观察到调试器中的“jsonData”变量是在我的实际 json 字符串而不是 [" 之前有一些值,例如 %5B% ,这正常吗? -
如果它在那里中断,您不应该看到错误吗?
fromJson的参数是否有效以及您期望它们是什么?此方法可能会抛出JsonParseException或JsonSyntaxException。
标签: jquery ajax json spring gson