繁体   English   中英

我正在尝试进行ajax发布呼叫,但请求不会发送到控制器

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM