2014-08-28 67 views
1

我有以下的Javascript:編碼字符防止形式從

var form = document.createElement("form"); 
    form.method = "post"; 
    form.action = "${pageContext.request.contextPath}/login?action=login"; 
    form.id = "loginForm"; 

我也有一個按鈕,submits()form上述情況,問題是,submit()通過更換支架{啓動鏈接, }與他們的ASCII碼。在我的瀏覽器中顯示如下:的

"$%7BpageContext.request.contextPath%7D/login?action=login" 

...相反:

"${pageContext.request.contextPath}/login?action=login" 

我的問題:

  • 如何強制瀏覽器與{更換%7B%7D和分別是}
  • 我該如何讓submit()啓動解碼後的鏈接?
+2

我認爲你想要在解僱之前對動作進行解碼?否則,URL就是變量名稱。 – 2014-08-28 20:22:44

+2

你*字面上*希望URL爲'http://example.com/$ {pageContext.request.contextPath}/login?action = login'? – 2014-08-28 20:27:54

+0

什麼,確切地說,你的意思是「啓動鏈接」? – 2014-08-28 20:29:23

回答

0

我發現了問題所在:

"${pageContext.request.contextPath}"

字面上解釋,因爲它是JavaScript文件中,而不是從JSP變量中。我聲明的變量ROOTPATH = 「$ {} pageContext.request.contextPath」 事後

"form.action = rootPath + "/login?action=login";" 

現在一切都根據需要工作。