SpringBoot项目AJAX请求返回404 XHR加载失败问题求助(含Spring Security环境)
问题排查方案
1. 优先检查Spring Security配置
- 首先确认你的Security配置类中是否放开了
/company_selection路径的POST访问权限,未授权的请求会被Spring Security直接拦截。 - Spring Security默认开启CSRF防护,AJAX发送POST请求需要携带CSRF令牌,否则会被拦截。可临时在Security配置中添加
http.csrf().disable()测试,如果请求可正常发送就是CSRF防护的问题,生产环境建议配置前端携带CSRF令牌而非直接关闭防护。
2. 检查请求路径匹配
- 查看项目
application.yml/application.properties中是否配置了server.servlet.context-path全局上下文路径,如果配置了,AJAX请求的url需要加上上下文前缀,比如上下文路径为/myproject,请求地址就要改为/myproject/company_selection。
3. 检查请求参数解析规则
- 确认
YearCriteria实体类中存在companyName字段,且有对应的getter、setter方法,字段名要和你传递的JSON参数key完全一致,参数解析失败也可能抛出404错误。
其他前端代码注意事项
你当前AJAX成功回调中的模板语法使用错误,${elem[0]}是服务端模板的写法,不能直接在前端JS中使用,需要修改为直接拼接变量:
for (let elem of data.entries()) { html += '<option value="' + elem[0] + '">' + elem[1] + '</option>'; }
内容的提问来源于stack exchange,提问作者Nandha
相关产品推荐
相关产品推荐

