前端通過 Ajax 發送請求,控制台報錯 404(Not Found),截圖顯示請求 URL 為相對路徑,且缺少 .action 後綴或應用上下文路徑。
.action 後綴:Struts2 默認攔截 *.action,若映射為 /saveUser 而請求 /saveUser.action 會 404。/myapp,前端請求 /saveUser 實際應為 /myapp/saveUser.action。var basePath = "${pageContext.request.contextPath}";
$.ajax({
url: basePath + "/saveUser.action",
...
});
確保 struts.xml 中 <action name="saveUser" class="..."> 對應的 name 與請求 URL 一致(不含 .action),並開啟 struts.action.extension=action,。
<base> 標簽在 JSP 頭部添加 <base href="<%=request.getContextPath()%>/">,使相對路徑自動拼接上下文。
request.getRequestURI() 確認入口。404 多數由路徑不匹配引起。採用絕對路徑、正確配置映射後綴、利用 <base> 標簽,可徹底解決 Ajax 請求 404 問題。