首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JS/Ajax 請求 404 錯誤排查:路徑映射與絕對路徑解決方案

     編輯:程式設計疑難解答

現象描述

前端通過 Ajax 發送請求,控制台報錯 404(Not Found),截圖顯示請求 URL 為相對路徑,且缺少 .action 後綴或應用上下文路徑。

常見原因

  1. Controller 映射路徑缺少 .action 後綴:Struts2 默認攔截 *.action,若映射為 /saveUser 而請求 /saveUser.action 會 404。
  2. 請求路徑未包含應用上下文:如應用部署在 /myapp,前端請求 /saveUser 實際應為 /myapp/saveUser.action。
  3. 前端 Ajax 中使用相對路徑:頁面層級不同導致相對路徑解析錯誤。

解決方案

1. 統一使用絕對路徑

var basePath = "${pageContext.request.contextPath}";
$.ajax({
    url: basePath + "/saveUser.action",
    ...
});

2. 檢查 Struts 配置

確保 struts.xml 中 <action name="saveUser" class="..."> 對應的 name 與請求 URL 一致(不含 .action),並開啟 struts.action.extension=action,。

3. 使用 <base> 標簽

在 JSP 頭部添加 <base href="<%=request.getContextPath()%>/">,使相對路徑自動拼接上下文。

調試技巧

  • 瀏覽器 Network 面板查看實際請求 URL。
  • 後端日誌打印 request.getRequestURI() 確認入口。
  • 嘗試在瀏覽器直接訪問該 URL 驗證映射。

總結

404 多數由路徑不匹配引起。採用絕對路徑、正確配置映射後綴、利用 <base> 標簽,可徹底解決 Ajax 請求 404 問題。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved