Java 当参数作为RequestBody和RequestParam发送时,sprig控制器无法识别发送的请求

Java 当参数作为RequestBody和RequestParam发送时,sprig控制器无法识别发送的请求,java,angularjs,spring-mvc,Java,Angularjs,Spring Mvc,我正在使用angularjs开发spring应用程序。 我试图将JSON对象作为RequestBody和RequestParam信息从angularjs发送到spring控制器,但是spring控制器 无法识别从angularjs发送的请求 js: 弹簧控制器: @RequestMapping(value = "/getInformationTest", method = RequestMethod.POST, headers = {"content-type=multipart/form-d

我正在使用angularjs开发spring应用程序。 我试图将JSON对象作为RequestBody和RequestParam信息从angularjs发送到spring控制器,但是spring控制器 无法识别从angularjs发送的请求

js:

弹簧控制器:

 @RequestMapping(value = "/getInformationTest", method = RequestMethod.POST, headers = {"content-type=multipart/form-data"})
    public
    @ResponseBody
    String sendInformationTest(@RequestParam("file") List<MultipartFile> multiPartFileList,@RequestBody("emailData") EmailDataDTO emailDataDTO){                         
         System.out.println("In spring controller");
         System.out.println("single file " +multiPartFileList.size());
    }
@RequestMapping(value = "/getInformationTest", method = RequestMethod.POST, headers = {"content-type=multipart/form-data"})
    public
    @ResponseBody
    String sendInformationTest(@RequestParam("file") List<MultipartFile> multiPartFileList){                         
         System.out.println("In spring controller");
         System.out.println("single file " +multiPartFileList.size());
    }
@RequestMapping(value = "/getInformationTest", method = RequestMethod.POST, headers = {"content-type=multipart/form-data"})
    public
    @ResponseBody
    String sendInformationTest(@RequestParam("file") List<MultipartFile> multiPartFileList,@RequestParam("emailData") List<EmailDataDTO> emailData){                         
         System.out.println("In spring controller");
      }
弹簧控制器:

 @RequestMapping(value = "/getInformationTest", method = RequestMethod.POST, headers = {"content-type=multipart/form-data"})
    public
    @ResponseBody
    String sendInformationTest(@RequestParam("file") List<MultipartFile> multiPartFileList,@RequestBody("emailData") EmailDataDTO emailDataDTO){                         
         System.out.println("In spring controller");
         System.out.println("single file " +multiPartFileList.size());
    }
@RequestMapping(value = "/getInformationTest", method = RequestMethod.POST, headers = {"content-type=multipart/form-data"})
    public
    @ResponseBody
    String sendInformationTest(@RequestParam("file") List<MultipartFile> multiPartFileList){                         
         System.out.println("In spring controller");
         System.out.println("single file " +multiPartFileList.size());
    }
@RequestMapping(value = "/getInformationTest", method = RequestMethod.POST, headers = {"content-type=multipart/form-data"})
    public
    @ResponseBody
    String sendInformationTest(@RequestParam("file") List<MultipartFile> multiPartFileList,@RequestParam("emailData") List<EmailDataDTO> emailData){                         
         System.out.println("In spring controller");
      }
----编辑--- 我试图将RequestBody更改为RequestParam,如下面2种方式所示,但这两种方式都不会影响spring控制器

初审: js:

弹簧控制器:

 @RequestMapping(value = "/getInformationTest", method = RequestMethod.POST, headers = {"content-type=multipart/form-data"})
    public
    @ResponseBody
    String sendInformationTest(@RequestParam("file") List<MultipartFile> multiPartFileList,@RequestBody("emailData") EmailDataDTO emailDataDTO){                         
         System.out.println("In spring controller");
         System.out.println("single file " +multiPartFileList.size());
    }
@RequestMapping(value = "/getInformationTest", method = RequestMethod.POST, headers = {"content-type=multipart/form-data"})
    public
    @ResponseBody
    String sendInformationTest(@RequestParam("file") List<MultipartFile> multiPartFileList){                         
         System.out.println("In spring controller");
         System.out.println("single file " +multiPartFileList.size());
    }
@RequestMapping(value = "/getInformationTest", method = RequestMethod.POST, headers = {"content-type=multipart/form-data"})
    public
    @ResponseBody
    String sendInformationTest(@RequestParam("file") List<MultipartFile> multiPartFileList,@RequestParam("emailData") List<EmailDataDTO> emailData){                         
         System.out.println("In spring controller");
      }
--编辑---
我在servlet.xml中配置了CommonsMultipartResolver

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="10000000"/>
    </bean>

在服务器中,如果您以JSON格式发送数据,则将
标题={“内容类型=多部分/表单数据”}
更改为
标题={“内容类型=应用程序/JSON”}
并检查是否启用了CORS。
将标题从前端标题:{'Content-Type':undefined}更改为
标题:{'Content-Type':“Content-Type=multipart/form data”}

发生了什么错误它没有显示任何错误,但没有击中spring控制器。因此,API路径是错误的?@NiVeR-请参阅上面文章中编辑的部分。。我试着只将一个参数从js传递给spring控制器,然后调用sprig控制器。只有当我试图将两个参数从js传递到spring控制器时,才会出现问题。请将
@RequestBody
更改为
@RequestParam
。我刚刚检查了它,当我将多部分/表单数据更改为application/json时,它仍然没有击中spring控制器。我想说的一件事是,我需要向spring控制器发送文件信息和JSON对象,因为两者完全不同,任何输入?单独安装POSTMAN application test webservice@nanConfigure MultipartResolver,并从前端将其作为formDataI提交我的servlet.xml文件中配置了CommonsMultipartResolver。请参阅上述文章的编辑部分。如何将其作为formData提交?标题:{'Content-Type':undefined}为什么从前端设置未定义的标题