You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

实现PUT后出现Request method 'GET' not supported错误求助

解决Spring Data Rest MongoDB PUT请求出现GET不支持的问题

嘿,刚看到你的问题,我之前也碰到过类似的情况,咱们一步步来排查原因并解决:

  • 检查HTTP请求方法是否正确
    首先要确认你的请求确实用了PUT方法,而不是误发成GET。有些前端框架或者请求工具可能默认用GET,或者配置时写错了方法。可以用Postman、curl这类工具直接发送PUT请求测试,比如执行这个curl命令:

    curl -X PUT -H "Content-Type: application/json" -d '{"你的Book实体字段":"对应值"}' http://localhost:8080/books/{你的文档ID}
    

    确保请求头里的Request Method是PUT,而非GET。

  • 排查自定义RestController的路径冲突
    如果你写了自定义的RestController,要检查它的路径是不是和Spring Data Rest自动生成的端点重复了。比如Spring Data Rest默认会给BookRepository生成/books/{id}的PUT端点,如果你自己的Controller里也有@GetMapping("/books/{id}"),但没有处理PUT请求,当你发送PUT到这个路径时,就会因为没有对应的PUT映射而报错。
    解决方法是要么调整自定义Controller的路径,要么在自定义Controller里添加@PutMapping注解来处理PUT请求。

  • 检查Spring Data Rest的配置限制
    看看你有没有在配置类里修改过RepositoryRestConfiguration的设置,比如有没有禁用PUT方法。比如如果有类似这样的代码:

    @Configuration
    public class RestConfig implements RepositoryRestConfigurer {
        @Override
        public void configureRepositoryRestConfiguration(RepositoryRestConfiguration config) {
            config.disableDefaultExposure();
            // 或者有没有限制HTTP方法的配置
        }
    }
    

    要确认没有禁用PUT方法的相关配置,确保Spring Data Rest能正常暴露PUT端点。

  • 确认请求体格式和Content-Type
    检查请求的Content-Type是不是application/json,如果格式不对,可能会导致框架无法正确解析请求,间接引发方法不支持的错误。确保请求头里包含Content-Type: application/json,并且请求体的JSON格式和你的Book实体类字段匹配。

内容的提问来源于stack exchange,提问作者devdre

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:47:26