前后端数据交互,关于表单数据传输问题
表单提交
var formData = new FormData();
// 添加每个事故ID作为单独的参数
accidentIds.forEach(id => formData.append('accidentIds', id));
formData.append('status', statusText);
$.messager.confirm('确认', '确定要将事故记录标记为' + statusText + '吗?', function (r) {if (r) {// 模拟更新状态$.ajax({url: 'TMSPROC0050/updateStatus',method: 'POST',data: formData,dataType: 'json',processData: false, // 禁用jQuery处理数据contentType: false, // 让浏览器自动设置Content-Typesuccess: function (result) {$.messager.alert('成功', result.message, 'info');searchAccidents();},error: function(error) {console.error('请求发生错误:', error);$.messager.alert('错误', '操作失败,请重试', 'error');}});}
});
这是一个自定义表单,自定义表单必须要添加
processData: false, // 禁用jQuery处理数据
contentType: false, // 让浏览器自动设置Content-Type
如果你不加,jQuery会帮你处理,到时候又是名称不对比如明明是个数组accidentids,这是你定义的名称,但是他会帮你处理成一个 accidentids[],这样名称就对不上了
他所对应的后端应该是
@ResponseBody@RequestMapping(value = "/TMSPROC0050/updateStatus", method = RequestMethod.POST)public Map<String, Object> updateStatus(ReceiveUpdateStatusBo request ){UserValueObject loginObject = getLoginObject();return tMSPROC0050Service.updateStatus(request,loginObject);}
实体类字段
private String[] accidentIds;private String status;