Spring MVC结合AJAX调用删除接口报404错误求助
问题排查与解决方案
兄弟,我一眼就揪出了导致你接口无法访问的核心问题,咱们一步步拆解来看:
1. 致命错误:路径变量的语法完全用错了
你在@RequestMapping里写的路径是/delete/completion/form/${id},这里的${id}是EL表达式的写法,但Spring MVC识别动态路径变量的语法是纯大括号{id},不需要加美元符号。
这就导致你的接口实际匹配的是一个固定路径/delete/completion/form/${id},而不是你期望的能接收真实id的动态路径——所以无论你请求哪个带UUID的URL,Spring都找不到对应的接口,自然返回“页面未找到”。
2. 修正后的接口代码
只需要把${id}改成{id}就行,其他逻辑完全不用动:
@RequestMapping(value = "/delete/completion/form/{id}", method = RequestMethod.GET) @ResponseBody public String deleteCompletionForm(@PathVariable("id") String id) { return String.valueOf(completionFormService.deleteCompletionFormThenLog(id)); }
3. 关于URL里的?_=1526048495480参数
这个是因为你AJAX里设置了cache: false,jQuery自动添加的时间戳参数,用来避免浏览器缓存请求。这个参数完全不影响接口匹配,Spring MVC会自动忽略GET请求里的额外查询参数,所以不用管它。
4. 快速验证建议
修正后你可以直接在浏览器里访问类似这样的URL测试:http://localhost:8080/admin/panel/case/survey/delete/completion/form/0af9518a-8eea-4e69-94a3-3571c3785215
如果能正常返回结果,说明接口已经没问题了,再测试AJAX请求即可。
内容的提问来源于stack exchange,提问作者MARWAN AMEEN
相关产品推荐
相关产品推荐

