js创建form, 提交表单失败
前端错误信息:
Form submission canceled because the form is not connected
提交失败原因:
- 动态创建form提交会被拦截,不符合Http规范,必须把form添加到body中
解决方案:
- body中创建一个空div标签
- js动态生成form字符串后添加到body中
- 发起请求
- 请求成功后清除标签中内容
Jsp
<body>
<!-- div标签 -->
<div id="submitForm"></div>
</body>
JavaScript
var formStr = "<form id='form' action='请求路径' method='POST'>";//我的请求路径 /demo
//按照自己需求拼接formStr
//我是需要把获取到的id字符串添加到form中
var idStr = "id=1%2C2%2C3";//我的初始id字符串,%2C是逗号编码了
var idArray = idStr.split("%2C");
for(var i=0;i<idArray.length;i++){
//我是把所有id当成数组给后端传,所以name保持一致
formStr = formStr + "<input type='text' name='id' value='" + idArray[i] +"'\/>";
}
formStr = formStr + "<\/form>";
$("#submitForm").html(formStr);
$("#form").submit();
$("#submitForm").html("");
Java
@Controller
public class DemoController{
@RequestMapping("demo")
public void demo(@RequestParam(value="id")String[] idArray){
//处理代码
}
}