当前位置: 首页 > 面试题库 >

缺少所需的请求正文内容:org.springframework.web.method.HandlerMethod $ HandlerMethodParameter

仲孙温文
2023-03-14
问题内容

将JSON数据从JSP传递到ResponseBody中的控制器时出错。

07:13:53.919 DEBUG o.s.w.s.m.m.a.ExceptionHandlerExceptionResolver - Resolving exception from handler [public com.chaitanya.ajax.AjaxResponse com.chaitanya.web.controller.DepartmentController.addDepartment(com.chaitanya.ajax.AjaxResponse)]:

org.springframework.http.converter.HttpMessageNotReadableException: Required request body content is missing: org.springframework.web.method.HandlerMethod$HandlerMethodParameter@98d8d36c
07:13:54.106 DEBUG o.s.w.s.m.a.ResponseStatusExceptionResolver - Resolving exception from handler [public com.chaitanya.ajax.AjaxResponse com.chaitanya.web.controller.DepartmentController.addDepartment(com.chaitanya.ajax.AjaxResponse)]: org.springframework.http.converter.HttpMessageNotReadableException: Required request body content is missing: org.springframework.web.method.HandlerMethod$HandlerMethodParameter@98d8d36c
07:13:54.125 DEBUG o.s.w.s.m.s.DefaultHandlerExceptionResolver - Resolving exception from handler [public com.chaitanya.ajax.AjaxResponse com.chaitanya.web.controller.DepartmentController.addDepartment(com.chaitanya.ajax.AjaxResponse)]: org.springframework.http.converter.HttpMessageNotReadableException: Required request body content is missing: org.springframework.web.method.HandlerMethod$HandlerMethodParameter@98d8d36c
07:1

Ajax电话:

$.ajax({ 
                        url: "/BusinessReimbursment/addDepartment", 
                        method: 'POST', 
                        dataType: 'json', 
                        data: "{\"message\":\"abc\",\"success\":true}",
                        contentType: 'application/json',
                        mimeType: 'application/json',
                        success: function(data) { 
                            alert(data.id + " " + data.name);
                            commit(true);
                        },
                        error:function(data,status,er) { 
                            alert("error: "+data+" status: "+status+" er:"+er);
                        }
                    });

控制器:

@RestController
public class DepartmentController {

    @Autowired 
    @Qualifier("departmentService")
    private DepartmentService departmentService;

    @RequestMapping(value="/addDepartment", method={RequestMethod.POST})
    public @ResponseBody AjaxResponse addDepartment(@RequestBody AjaxResponse  departmentDTO){
        AjaxResponse response=new AjaxResponse();
        return response;
    }

AppConfig.java

@豆

public RequestMappingHandlerAdapter  annotationMethodHandlerAdapter()
{
    final RequestMappingHandlerAdapter annotationMethodHandlerAdapter = new RequestMappingHandlerAdapter();
    final MappingJackson2HttpMessageConverter mappingJacksonHttpMessageConverter = new MappingJackson2HttpMessageConverter();

    List<HttpMessageConverter<?>> httpMessageConverter = new ArrayList<HttpMessageConverter<?>>();
    httpMessageConverter.add(mappingJacksonHttpMessageConverter);

    String[] supportedHttpMethods = { "POST", "GET", "HEAD" };

    annotationMethodHandlerAdapter.setMessageConverters(httpMessageConverter);
    annotationMethodHandlerAdapter.setSupportedMethods(supportedHttpMethods);

    return annotationMethodHandlerAdapter;
}

请帮助我摆脱困境。我正在使用Spring 4,Jakson 2.3.0

如果我尝试POST请求,它将给出:org.springframework.web.HttpRequestMethodNotSupportedException:请求方法’POST’不支持


问题答案:

抱歉,..实际上是因为需要一个csrf令牌,所以我遇到了这个问题。我已经实现了spring安全性,并且启用了csrf。通过ajax调用,我需要传递csrf令牌。



 类似资料:
  • 问题内容: 将JSON数据从JSP传递到ResponseBody中的控制器时出错。 Ajax电话: 控制器: AppConfig.java @豆 请帮助我摆脱困境。我正在使用Spring 4,Jakson 2.3.0 如果我尝试POST请求,它将给出:org.springframework.web.HttpRequestMethodNotSupportedException:请求方法’POST’不

  • 基于Web中的示例创建了两个应用程序:Angular中的Frontend和customer)Angular URL:http://localhost:4200/Spring Boot URL:http://localhost:9020/(REST:http://localhost:9020/API/) 根据这里的专家对我前面问题的说明(https://stackoverflow.com/posts

  • 我创建了基于Web的应用程序示例:Angular的前端和spring boot mer客户的后端)Angular URL:http://localhost:4200/spring boot URL:http://localhost:9020/(REST:http://localhost:9020/API/) . . 应用程序.属性: > server.port=9020 spring.dataso

  • 我正在使用谷歌应用程序引擎和谷歌数据存储。我正在使用谷歌图书馆 我的示例代码是: 我使用Spring靴和码头作为容器。 在本地,它工作正常,数据在谷歌数据存储中更新。 问题是当我部署应用程序到google-app-Engine,我得到下面的异常,当我得到datastore.put方法。 注意:在本地环境和google-app-Engine中,我定义了环境变量GOOGLE_APPLICATION_C

  • 我正在使用一个基于json请求的API,除了一个请求之外,所有的请求都在工作。默认情况下,有问题的请求不允许跨域,但使用“Cors”可以工作。问题是,当我使用cors服务器使用javascript测试请求时,它可以工作,但当我使用node.js测试请求时,它不能工作。 不起作用的代码: 这是有效的代码: 我的网站做这个网址的请求:http://gankei-backend.herokuapp.co

  • 我有一个控制器类,其中有几个方法,其中一个是应该接受POST请求的方法。 当我试图发送一个POST请求时,我得到一个错误,说: POST请求的ContentType是应用程序/x-ww-form-urlencoded; charset=UTF-8。表单数据为: 属性包含“%”。如果删除“%”,程序将运行良好,但当正文包含“%s”时,程序将无法正常运行。