[英]I am trying to do a ajax post call but request is not going to controller
嗨,我正在尝试发布3件事json对象和2文件对象,但请求不会发送到控制器请找到下面的代码:
Java脚本功能:
<script type="text/javascript">
function submitAllDetails(){
var jsonObj=[{
name:name,
age:age,
rollno:rollno,
add:add,
}];
var jsonString=JSON.stringify(jsonObj);
alert(jsonString);
var fileInput=document.getElementById("Uploadfile");
var file=fileInput.files[0];
var fd = new FormData();
fd.append("fileUpload",file);
var fileInput1=document.getElementById("Uploadfile2");
var file1=fileInput1.files[0];
var fd1 = new FormData();
fd1.append("fileUploadnew",file1);
$.ajax({
url:contextPath +"/submitAllInfo",
type:"POST",
contentType: "application/json; charset=utf-8",
data: {jsonString:"jsonString", fd:"fd", fd1:"fd1"},
async: false,
cache: false,
processData:false,
success: function(response){
alert("in success***");
},
error: function(){
alert("error has occured");
}
});
}
</script>
控制代码:
@RequestMapping(value = "/submitAllInfo", method = RequestMethod.POST)
public @ResponseBody ModelAndView insertAllStepDetails(@RequestParam("jsonString") String jsonString,@RequestParam("fd") CommonsMultipartFile[] fileUpload,@RequestParam("fd1") CommonsMultipartFile[] fileUploadnew){
System.out.println("in submit controller !!!");
return new ModelAndView("success");
}
我怀疑行data: {jsonString:"jsonString", fd:"fd", fd1:"fd1"},
的语法存在问题data: {jsonString:"jsonString", fd:"fd", fd1:"fd1"},
不确定在错误块中总是出现什么问题。
任何建议
数据:{jsonString:“ jsonString”,fd:“ fd”,fd1:“ fd1”}在这里,您必须删除jsonString参数值中的引号,因为已将json对象设置为字符串化。 并在第一个参数中添加引号。
这是您更新的代码。
<script type="text/javascript">
function submitAllDetails(){
// Why usint [] brackets? not needed..
var jsonObj={
name:name,
age:age,
rollno:rollno,
add:add,
};
var jsonString=JSON.stringify(jsonObj);
alert(jsonString);
var fileInput=document.getElementById("Uploadfile");
var file=fileInput.files[0];
var fd = new FormData();
fd.append("fileUpload",file);
var fileInput1=document.getElementById("Uploadfile2");
var file1=fileInput1.files[0];
var fd1 = new FormData();
fd1.append("fileUploadnew",file1);
$.ajax({
url:contextPath +"/submitAllInfo",
type:"POST",
contentType: "application/json; charset=utf-8",
data: {"jsonString":jsonString, "fd":fd, "fd1":fd1}, // you have setted json in jsonString varible
async: false,
cache: false,
processData:false,
success: function(response){
alert("in success***");
},
error: function(){
alert("error has occured");
}
});
您可以尝试以下代码:
var file_data = $("#UploadedFile").prop("files")[0];
var form_data = new FormData();
form_data.append("file", file_data)
form_data.append("user_id", 123)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.