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

jQuery AJAX提交表单未触发Spring Controller方法问题排查

问题排查与修复方案

核心问题出在前端jQuery事件绑定的位置错误,另外还有几个潜在问题会导致请求异常,按以下步骤修复即可:

1. 修复事件绑定失效问题

你把#ip_submit按钮的点击事件绑定代码写在了$(document).ready()回调函数的外面。
浏览器解析页面是从上到下执行的,执行到事件绑定代码时,id为ip_submit的按钮DOM元素还没渲染完成,jQuery找不到对应元素,事件根本没绑定成功,点击按钮自然不会触发AJAX请求,后端接口也不会被调用。

把点击事件的代码移到$(document).ready()内部即可,调整后的JS代码如下:

$(document).ready(function() {
    $('#verify_success').hide();
    $('#verify_fail').hide();
    $('#command_header').hide();
    $('#command_text').hide();
    $('#command_area').hide();    

    // 事件绑定必须放在DOM加载完成的回调里
    $('#ip_submit').click(function () {
        $.ajax({
            type: "POST",
            url: "/verifyRouterIP", 
            // 不要手动拼接参数字符串,用对象格式传参可以自动处理特殊字符转义
            data: {routerIP: $('#ip_text').val()},
            success: function(msg) {      
                alert("请求成功,返回内容:" + msg);
            },
            // 增加错误回调,方便定位请求异常
            error: function(xhr, status, err) {
                console.log("请求失败,状态码:" + xhr.status);
            }
        });
    });                     
});

2. 排查接口路径404问题

如果改完事件绑定还是调不通接口,打开浏览器F12开发者工具,切换到「网络」面板,点击按钮看发出去的请求状态:

  • 如果状态码是404,说明你写的接口路径不对。很多Spring项目会配置上下文路径(context-path),直接写/verifyRouterIP会请求到服务根路径,匹配不到你项目里的接口,可以改成相对路径verifyRouterIP,或者补上正确的上下文前缀。

3. 后续开发注意点

你当前的verifyRouterIP方法返回值是视图名welcome,AJAX请求拿到的会是整个JSP页面的HTML源码。如果后续需要给前端返回JSON格式的校验结果,需要给方法加上@ResponseBody注解,否则会报视图解析错误。
另外你页面上id为command_text的输入框name属性也写成了routerIP,后续提交表单时会出现参数重名问题,记得改成对应的命令参数名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 15:06:21