当前位置: 首页 > 知识库问答 >
问题:

发送JSON和FormData(角度到Spring)

苏宾鸿
2023-03-14

有棱角的

register(usuario:any, id: File): Observable<any>{

 let formData = new FormData();
 
 formData.append("user", JSON.stringify({username:'Userr'}));
 formData.append("file", id);

 return this.http.post(AUTH_API + 'signup', formData);

代码在此处输入图像描述

Spring

@PostMapping(value = "/signup")
    public ResponseEntity<?> registerUser( @RequestParam SignupRequest user,
            @RequestParam("file") MultipartFile archivo) {
         
    
        System.out.println(archivo.getSize());
        System.out.println(user.getUsername());
}

错误2021-01-02 16:50:55.397 WARN 15076---[nio-8080-exec-1]。w、 s.m.s.DefaultHandlerExceptionResolver:已解决[org.springframework.web.method.annotation.MethodArgumentConversionNotSupportedException:

无法转换“java”类型的值。lang.String“”转换为所需类型“SignupRequest”;

嵌套异常为java。lang.IllegalStateException:无法转换“java”类型的值。lang.String“到所需类型”com。AreMyNews。要求SignupRequest:未找到匹配的编辑器或转换策略]

共有1个答案

凌智
2023-03-14

对SignupRequest用户使用@ModelAttribute而不是@RequestParam。

PostMapping(value = "/signup")
    public ResponseEntity<?> registerUser( @ModelAttribute SignupRequest user,
            @RequestParam("file") MultipartFile archivo) {
         
    
        System.out.println(archivo.getSize());
        System.out.println(user.getUsername());
}
 类似资料:
  • 问题内容: 我正在尝试发送带有标头的XMLHttpRequest并添加FormData。有没有一种(优雅的)方式我可以做这样的事情: 问题答案: 您无法在发送时指定标题,因为该标题会被浏览器自动设置为。您也可以设置其他标题,请尝试以下操作:

  • 问题内容: 如何使用jQuery将JSON对象发送到Web方法? 问题答案: 请参阅Dave Ward的这篇文章。这是完成此操作的完整教程。另外,您还会发现其他很棒的jquery / ASP.net东西。 编辑:-Dave正在调用不带任何参数的方法,您可以将空 数据 属性替换为要发送的实际数据:

  • 问题内容: 我在使用jQuery的ajax函数将文件发送到服务器端PHP脚本时遇到问题。可以获取File- List,但是如何将此数据发送到服务器呢?使用文件输入时,服务器端php脚本上的结果数组()为0()。 我知道这是可能的(尽管直到现在我还没有找到任何jQuery解决方案,只有Prototye代码(http://webreflection.blogspot.com/2009/03/safar

  • 我想按照这个答案从角度5迁移到角度6 我试着执行这三个命令,来更新。angular-cli.json到angular.json: 不幸的是,仍然没有angular.json。如果我试图运行< code>ng serve,我会得到以下错误: 所以我改名了。angular-cli.json到angular.json。但这并没有帮助: 架构验证失败,出现以下错误:数据路径“”不应具有其他属性(项目)。错

  • 问题内容: 我正在使用ajax提交包含数组,文本字段和文件的多部分表单。 我将每个VAR附加到主数据中 然后我使用ajax函数将其发送到PHP文件以存储在sql DB中。 但是在PHP方面,变量(即数组)显示为字符串。 当我不使用ajax作为表单数据发送它,而是使用简单的选项时,确实在PHP端将它作为数组获得,但是后来我也无法发送文件。 有什么办法吗? 问题答案: 您有几种选择: 将其转换为JSO

  • 我正在使用ajax提交一个包含数组、文本字段和文件的多部分表单。 我将每个VAR附加到主数据中,如下所示 然后使用ajax函数将其发送到PHP文件中存储在sql DB中。 但是在PHP端,变量(一个数组)显示为字符串。 当我没有将它作为表单数据与ajax一起发送,而是使用简单的选项时,我会在PHP端将它作为一个数组来获取,但这样我就不能同时发送文件。 有什么解决办法吗?