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

Spring Controller与jQuery Ajax交互时出现POST请求方法不支持错误

解决Spring Controller返回JSON时的"Request method 'POST' not supported"错误

我来帮你梳理下这个问题的原因和解决办法:

首先,你遇到的这个错误核心是前端请求方法和Spring Controller允许的请求方法不匹配。看你的前端代码,Ajax用的是type:'get'(也就是GET请求),但你的Spring Controller里的@RequestMapping应该是限制了只能接受POST请求,所以才会抛出POST方法不支持的错误。

下面给你两种可行的解决思路:

思路一:修改前端请求方法为POST

如果你的Controller确实需要用POST来处理这个请求,直接把Ajax的请求类型改成post就行:

function fnMicEdit(){ 
    var value=$( 'input[name=check]:checked' ).val(); 
    alert(value); 
    $.ajax({ 
        type:'post', // 这里把get改成post
        url:'getMicModule.htm', 
        data:{radiovalue:value}, 
        dataType: "json", 
        cache:false, 
        success : function(data) { 
            $("#popup").html(data); 
        }, 
        error:function(){ 
            alert('error'); 
        } 
    }); 
}

注意:如果你的项目开启了Spring Security的CSRF保护,POST请求需要额外带上CSRF令牌,不然会被拦截。可以通过页面里的隐藏域获取令牌,然后加到Ajax的请求参数里。

思路二:修改Controller允许GET请求

如果业务逻辑允许用GET请求,调整Controller的@RequestMapping配置,让它接受GET请求:

// 方式1:明确指定接受GET请求
@RequestMapping(value="/getMicModule", method=RequestMethod.GET)
@ResponseBody // 重点!必须加这个注解,否则Spring会把返回值当成视图名,不会转成JSON
public MicModuleDTO getMicModule(@RequestParam("radiovalue") String radiovalue) {
    // 这里写你的业务逻辑,返回要转成JSON的对象
    MicModuleDTO dto = new MicModuleDTO();
    // 给dto赋值...
    return dto;
}

// 方式2:不指定method,默认接受所有请求方法(GET/POST等)
@RequestMapping(value="/getMicModule")
@ResponseBody
public MicModuleDTO getMicModule(@RequestParam("radiovalue") String radiovalue) {
    // 业务逻辑...
    return dto;
}

这里一定要注意@ResponseBody注解,很多人会漏掉它,导致Spring不会把返回的对象转成JSON,反而去查找对应的视图页面,这也是常见的坑。

额外检查点

  1. URL路径匹配:前端请求的url是getMicModule.htm,Controller的value是/getMicModule,要确保项目的DispatcherServlet映射规则支持.htm后缀,或者把前端的url改成/getMicModule(去掉.htm)。
  2. 参数接收:Controller里的@RequestParam("radiovalue")要和前端data里的radiovalue参数名一致,不然会接收不到参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:24:16