Javascript 防止提交表单的字符串中的编码字符

Javascript 防止提交表单的字符串中的编码字符,javascript,Javascript,我有以下Javascript: var form = document.createElement("form"); form.method = "post"; form.action = "${pageContext.request.contextPath}/login?action=login"; form.id = "loginForm"; 我还有一个按钮提交上面的表单,问题是提交通过用ASCII码替换括号{和}来启动链接。在我的浏览器中,显示为: "$%7Bpa

我有以下Javascript:

var form = document.createElement("form");
    form.method = "post";
    form.action = "${pageContext.request.contextPath}/login?action=login";
    form.id = "loginForm";
我还有一个按钮提交上面的表单,问题是提交通过用ASCII码替换括号{和}来启动链接。在我的浏览器中,显示为:

"$%7BpageContext.request.contextPath%7D/login?action=login"
…而不是:

"${pageContext.request.contextPath}/login?action=login"
我的问题是:

如何强制浏览器将%7B和%7D分别替换为{和}? 如何使提交启动解码链接?
我发现了问题所在:

${pageContext.request.contextPath}

因为它在JavaScript文件中,而不是jsp中的变量中,所以被逐字解释。我声明了一个变量rootPath=${pageContext.request.contextPath}及其后

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

现在一切都正常了。

我想你希望在启动之前对动作进行解码?否则,URL只是变量名。您确实希望URL是http://example.com/${pageContext.request.contextPath}/login?action=login?启动链接的确切含义是什么?form.action=${pageContext.request.contextPath}+/login?action=login;您可能需要这样的东西,其中变量是连接在一起的,而不是在quoteSprety中。请确保应该在服务器端对其进行解析。。。