Tomcat下ajax請求路徑總結
阿新 • • 發佈:2019-02-01
ajax的url有兩種,一種是絕對路徑,另一種是相對路徑。
一、絕對路徑:包括協議名稱、主機地址、埠、web專案名稱等的完整請求路徑。
例如:
$.ajax({
url:"http://localhost:8080/webname/test"
});
好處:比如在webA專案中的ajax需要請求webB專案中的服務,則必須使用絕對路徑。
壞處:使用絕對路徑要求古地理更web專案的名稱,如果webB專案重新命名了,則對應的ajax請求都需要修改。
二、相對路徑:不需要協議名、主機地址、埠、web專案名稱,只需要請求的路徑。
假設:
專案路徑:http://localhost:8080/webname
頁面路徑:/webname/index.html(A頁面),/webname/test/test.html(B頁面)
請求路徑:/request/ajaxtest,request/ajaxtest
1、如果請求路徑以根路徑開頭,則無論什麼ajax在什麼頁面,該請求都是相對於伺服器的根路徑,最後的請求路徑都是:http://localhost:8080/request/ajaxtest
例如:
$.ajax({
url :"/request/ajaxtest"
});
原因:以"/"開頭,是表示該請求基於從伺服器的根路徑,即不是相對於html的路徑。
2、如果請求不以根路徑開頭(常見),則該請求路徑是相對於html所在的路徑的。
a、假如請求在A頁面,最終的請求路徑是:http://localhost:8080/webname/request/ajaxtest。
// /webname/index.html頁面
$.ajax({
url:"request/ajaxtest"
});
原因:index.html頁面對應的路徑是"/webname/",所以將url跟在這個路徑下就是最終的請求路徑。
b、假如請求在B頁面,最終的請求路徑是:http://localhost:8080/webname/test/ request/ajaxtest。
// /webname/test/test.html頁面
$.ajax({
url:"request/ajaxtest"
});
原因:test.html頁面對應的路徑是“/webname/test/”,所以將url要跟在test這一級下面。
三、環境描述
web伺服器:Tomcat7
MVC框架:springMVC
以上內容,都是基於該環境測試自行總結出的,並無理論依據,若有錯誤請留言。