Ajax請求servlet報 404錯誤,提示 沒有發現檔案、查詢或URl
阿新 • • 發佈:2018-12-16
<script type="text/javascript"> var xmlHttp; /** * 根據 瀏覽器的支援返回 不同的 XMLHttpRequest */ function createXMLHttpRequest(){ if(window.ActiveXObject){ return new ActiveXObject("Microsoft.XMLHTTP"); }else{ return new XMLHttpRequest(); } } /** * 判斷 狀態碼,執行對應的事件操作 */ function processRequestGet() { if(xmlHttp.readyState==4){ if (xmlHttp.status==200) { if(result==true){ document.getElementById("loginDiv").innerHTML="使用者名稱已存在"; }else{ document.getElementById("loginDiv").innerHTML="使用者可以註冊"; } }else{ window.alert(xmlHttp.status+" +++ "+window.xmlHttp.responseText); } }else{ window.alert(xmlHttp.readyState); } } /** * 判斷 狀態碼,執行對應的事件操作 */ function callBackGet() { var username=document.getElementById("nameGet").value; /***注意:loginAction 是我在web.xml 中配置的 一個servlet類的 url別名***/ // var url="loginAction?username="+username; /** * 404 錯誤,就來自以上 這個 url變數。 * 我們以為 寫上"loginAction" 這個servlet類的 別名,tomcat服務就會自動找到 *對應的 類,然後執行。而事實上,tomcat並沒有成功找到該 url路徑,所以報了404錯誤。 */ //修改url,把專案名加上(我的專案名是:WebForAjax)。寫成: var url="/WebForAjax/loginAction?username="+username; //這樣就解決了 var urlEn=encodeURI(url);//url包含中文,不符合tomcat高版本的傳輸規定。 //所以要把 url 進行編碼,以保證符合傳輸規定 if (xmlHttp==null) { xmlHttp = createXMLHttpRequest(); } xmlHttp.onreadystatechange=processRequestGet; xmlHttp.open("GET",urlEn,true); xmlHttp.send(null); } } </script>
/** * 404 錯誤,就來自以上 這個 url變數。 * 我們以為 寫上"loginAction" 這個servlet類的 別名,tomcat服務就會自動找到 *對應的 類,然後執行。而事實上,tomcat並沒有成功找到該 url路徑,所以報了404錯誤。 */ //修改url,把專案名加上(我的專案名是:WebForAjax)。寫成: var url="/WebForAjax/loginAction?username="+username;
//這樣就解決了