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

Ajax调用Spring Boot DELETE接口出现MethodArgumentTypeMismatchException如何解决

问题根因

报错提示中For input string: "{1}"已经明确了问题来源:你前端拼接请求URL时错误携带了Spring路径占位符的大括号,导致后端拿到的路径参数是带{}的字符串,无法转换为int类型。

  • 后端@DeleteMapping(path="/delete/{id}")里的{id}是Spring MVC的占位符语法,仅用于接口声明时标记参数位置,实际请求时不需要在URL中携带大括号
  • 你当前JS代码拼接的URL为'/delete/{'+ id +'}',当id为1时最终请求路径是/delete/{1},后端提取到的id参数值为字符串"{1}",转int时触发格式转换异常。
修复方案

修改前端JS中URL拼接逻辑,去掉大括号即可:

function removeEmployee(employeeId) {
   console.log("removeEmployee " + employeeId);
   id = parseInt(employeeId);
    $.ajax({
        // 仅保留路径和参数值,删除大括号
        url: '/delete/'+ id,
        type: 'DELETE',
        success: function(result) {
            console.log ("ajax success ");
        },
        error: function() {
           console.log ("ajax failed ");
        }
    });
}
可选优化
  • 前端拼接URL前增加id合法性校验,避免传入非数字值触发同类报错
  • 后端可将路径参数类型改为Integer,配合@Min等参数校验注解,结合全局异常处理器返回更友好的错误提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:15:02