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
以上內容,都是基於該環境測試自行總結出的,並無理論依據,若有錯誤請留言。
