&引用;MultipartException:当前请求不是多部分请求;尝试使用javascript+;阿贾克斯(来自邮递员)

&引用;MultipartException:当前请求不是多部分请求;尝试使用javascript+;阿贾克斯(来自邮递员),javascript,java,ajax,spring,multipartform-data,Javascript,Java,Ajax,Spring,Multipartform Data,我正在尝试创建一个web表单,允许将单个文件从浏览器上载到我自己的服务器 后端API是基于spring boot的,特定的控制器经过postman测试,运行良好。现在,当我尝试使用JavaScript和ajax对我的网站进行相同的操作时,我得到以下错误: 客户端:错误400和 服务器端: org.springframework.web.multipart.MultipartException:当前请求 不是多部分请求 我试过10个关于stackoverflow的其他问题的公认解决方案,但都没用。

我正在尝试创建一个web表单,允许将单个文件从浏览器上载到我自己的服务器

后端API是基于spring boot的,特定的控制器经过postman测试,运行良好。现在,当我尝试使用JavaScript和ajax对我的网站进行相同的操作时,我得到以下错误:

  • 客户端:错误400和
  • 服务器端:
  • org.springframework.web.multipart.MultipartException:当前请求 不是多部分请求

    我试过10个关于stackoverflow的其他问题的公认解决方案,但都没用。 这些是相关的代码部分

    弹簧控制器:

        @PostMapping("/add_users_from_csv")
    public ResponseEntity<String> addUsersListFromCSVFile(@PathVariable String id,  @RequestParam("file") MultipartFile file, @RequestParam("club") String clubId, @RequestParam("notifyByEmail") boolean notifyByEmail, @RequestParam("notifyBySMS")  boolean notifyBySMS) throws UnauthorizedRequestException {
        businessService.securityCheckID(id);
        return clubService.addUsersListFromCSVFile(clubId, file, notifyByEmail, notifyBySMS);
    }
    
    @PostMapping(“/add\u users\u from\u csv”)
    public ResponseEntity addUsersListFromCSVFile(@PathVariable字符串id、@RequestParam(“文件”)多部分文件、@RequestParam(“club”)字符串clubId、@RequestParam(“notifyByEmail”)布尔notifyByEmail、@RequestParam(“NotifyByMs”)布尔NotifyByMs)引发未经授权的请求异常{
    businessService.securityCheckID;
    返回clubService.addUsersListFromCSVFile(clubId、file、notifyByEmail、notifyBySMS);
    }
    
    客户:

    <html>
    <body>
        <form name="uploadForm" id="fileUploadForm" method="POST" enctype="multipart/form-data">
            <input type="file" id="file" name="file" value="Import""> 
            <input type="submit" value="Import" id="Import" />
        </form>
        <script type="text/javascript"
            src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
        <script>
            $('form[name="uploadForm"]').submit(function(event){
                event.preventDefault();
                var formData = new FormData($('#fileUploadForm')[0]);
                formData.append('file', $('input[type=file]')[0].files[0]); 
                formData.append("club", "5cc5fd05569a720006169111");
                formData.append("notifyByEmail", "true");
                formData.append("notifyBySMS", "true");
                                    $.ajax({
                                        url: 'http://localhost:8090/business/5cc625ed3ba686000665f111/add_users_from_csv',
                                        data: formData,
                                        type: "POST",
                                        contentType: false,
                                        processData: false,
                                        cache: false,
                                        "headers": {
        "Content-Type": "application/json",
        "Authorization": "bearer 0278e739-fbe0-4e3d-9acf-57544b011111"
      },
                                        success : function(response){
                                            alert(response); 
                                        },
                                        error: function(xhr,status,errorThrown) {
                                            alert(xhr.status); 
                                        }
                                    });
                return false;
            });
        </script>
    </body>
    </html>
    
    
    
    您是否在bean中添加了多部分配置?我遵循了以下文章,并对我的项目进行了调整:。我没有看到任何“多部分配置”。此外,它与邮递员一起工作,这不意味着配置设置正确吗?您能解释一下您的问题吗?您将ajax请求的内容类型设置为“内容类型”:“应用程序/json”,请检查此链接:
    <html>
    <body>
        <form name="uploadForm" id="fileUploadForm" method="POST" enctype="multipart/form-data">
            <input type="file" id="file" name="file" value="Import""> 
            <input type="submit" value="Import" id="Import" />
        </form>
        <script type="text/javascript"
            src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
        <script>
            $('form[name="uploadForm"]').submit(function(event){
                event.preventDefault();
                var formData = new FormData($('#fileUploadForm')[0]);
                formData.append('file', $('input[type=file]')[0].files[0]); 
                formData.append("club", "5cc5fd05569a720006169111");
                formData.append("notifyByEmail", "true");
                formData.append("notifyBySMS", "true");
                                    $.ajax({
                                        url: 'http://localhost:8090/business/5cc625ed3ba686000665f111/add_users_from_csv',
                                        data: formData,
                                        type: "POST",
                                        contentType: false,
                                        processData: false,
                                        cache: false,
                                        "headers": {
        "Content-Type": "application/json",
        "Authorization": "bearer 0278e739-fbe0-4e3d-9acf-57544b011111"
      },
                                        success : function(response){
                                            alert(response); 
                                        },
                                        error: function(xhr,status,errorThrown) {
                                            alert(xhr.status); 
                                        }
                                    });
                return false;
            });
        </script>
    </body>
    </html>