2014-08-28 59 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";" 

现在一切都根据需要工作。