我有一個以Freemarker作爲視圖組件的Spring-MVC應用程序。如何在URL參數中提交散列鍵?
在我的模板中,生成了幾個指向我的應用程序的鏈接,其中包含包含散列鍵(#
)的URL參數。
實施例:
參數:testurl.html?key=Q%23106368%2011
我使用JavaScript來重定向到該URL(理由::我用JS管理2幀的加載通過Freemarker的具有編碼PARAM生成Q#106368 11
URL與此同時)。
重定向方法很簡單:
function redir(url) {
window.location.href = url;
}
被FreeMarker產生的JS調用看起來像
<a href="javascript:redir('http://localhost:8080/testappp/testurl.html?key=Q%23106368%2011');">test</a>
我的問題是,瀏覽器/ JavaScript的轉換回URL編碼的參數,認爲有一個#
並在那裏切斷。
當我直接使用window.location.href='http://...'
它的作品。只有在使用方法參數時,它似乎被神奇地URL解碼,然後重定向失敗,因爲URL在#
被切斷。
有沒有簡單的方法來正確傳輸參數?
我知道我可以替換#
,例如,與$$$hash$$$
,在模板中並再次在服務器端進行替換。但有很多地方我不得不改變......
同意。任何瀏覽器*做*轉換這個逃生將是一個嚴重的廢話。 –
即,複製鏈接位置或直接從代碼中檢查鏈接位置。 –
感謝您的回覆。我仔細看了一下,我忘了提到一個非常重要的細節,但我從來沒有想過會這樣。我使用Javascript重定向方法,它發生在我使用這種方法時。當我將URL複製並粘貼到瀏覽器時,它工作正常。所以它不是Java/Spring /瀏覽器問題,它是一個Javascript問題。我已經更新了相應的問題。 – tvirtualw