ajax - 尝试使用 Ajax 将数据数组传递给 Spring MVC 控制器
问题描述
我编写代码以使用 Ajax 将数据从 javascript 发送到 Spring MVC 控制器。
看来我的 Ajax 代码工作正常,因为我的“成功”消息打印在客户端控制台中,所以我假设 POST 已执行。但是,我的 Controller 似乎没有被调用,因为它的消息从未打印到服务器控制台。
我的阿贾克斯代码:
<script>
$(document).ready(function () {
$("#submit-btn-2").on("click", function () {
var idList = [];
$(".vm-row").has(":checkbox:checked").each(function() {
idList.push($(this).attr('id'));
});
$.ajax({
type: "POST",
url: 'submitVendors',
data: {idList:idList},
success: function(id) {
console.log("SUCCESS: ", idList);
},
error : function(e) {
console.log("ERROR: ", e);
},
done : function(e) {
console.log("DONE")
}
})
});
});
</script>
单击相关按钮会导致此消息打印到客户端控制台:
SUCCESS: Array(3)
我的控制器:
@RequestMapping(value="/submitVendors", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody
String submitVendors(@RequestParam("idList[]") String[] idList, HttpServletRequest request) {
String vid = request.getSession().getAttribute("vid").toString();
System.out.println("Inside submitVendors service.");
for (String id : idList)
{
System.out.println("It actually worked: " + id);
}
return "vendormanagement";
}
任何类型的错误都不会打印到服务器控制台,消息也不会打印。
解决方案
尝试这个 :
data: JSON.stringify(idList),
和
(@RequestBody String[] idList)
或这个 :
data: {"idList":idList.toString()},
和
(@RequestParam(value = "idList") List<String> idList)
推荐阅读
- node.js - 错误:表单数据:DelayedStream#maxDataSize of Infinity bytes 超出
- javascript - 如何从 javascript 中排除图像?
- javascript - Clang 是否为 WebAssembly 的 memory.fill 和 memory.copy 提供内在函数?
- regex - 如何将字符串切片插入原始字符串?
- python-3.x - 从Python中的pdf文件中提取固定大小和位置表
- cytoscape.js - Cytoscape.js cy.style():替换选择器而不是添加
- angular - 我来自 api 的数据是数组,但来自它的响应是对象
- node.js - 您如何从 mongodb 获取单个项目并显示它?(默恩)
- azure-devops - Azure Pipeline 变量何时使用显式名称和值属性
- react-native - 使用搜索到 Url React Native 的值