我有一个java servlet,它接收来自我的页面的所有请求,并以json的形式返回一些数据 . 我很确定servlet是可以的,但我不明白我在脚本中失败了 . 该脚本有一个action参数,我需要在servlet中了解该做什么,在这种情况下我还需要传递2个数组(1个int数组和1个String数组) . servlet告诉我数组的json格式不正确 . js脚本:
$(document).ready(
$.ajax({
url: "Controller",
type: "POST",
data: {action: "load",
subjects: getSubjects(),
days: getDays()
},
dataType: "json",
success: function (result) {
//do stuff
}
},
error: function (xhr, thrownError) {
alert(xhr.status);
alert(thrownError);
}
}));
Json解析是用gson完成的:
Integer[] days = gson.fromJson(request.getParameter("days"), Integer[].class);
String[] subjects = gson.fromJson(request.getParameter("subjects"), String[].class);
我尝试将两个数组都清空并且它可以工作,但如果其中一个或两个包含它没有的东西 . Ps:我在函数中创建数组并返回它们Ps2:使用push Ps3将元素添加到数组中:我在互联网上搜索了很多但是在最新版本的jquery中,很多东西都改变了,过去的答案也没有不行 .
编辑:我试过JSON.stringify(getSubjects)和JSON.stringify(getDays),但它没有工作
谢谢你的关注:)
1 回答
我想你的
getSubjects()
和getDays()
函数会返回一个数组,而你想要一个JSON字符串 . 您可以使用JSON.stringify()
生成有效的JSON字符串 .处理服务器请求时,请务必检查浏览器开发人员工具的网络选项卡(单击F12以在Firefox和Chrome等浏览器上打开它们) .
编辑
完整的工作示例代码:
档案 Test.java
档案 text-ajax.html