0
我创建了一个登录页面,我想重新加载我的验证码,但我不想丢失用户输入的信息。重新加载当前页面而不会丢失用户输入
文件:的Login.jsp
<body>
<b>REGISTER</b>
<p>Please fill up the form below.</p>
<s:form action="register" method="post">
<s:textfield label="Enter username" key="userId" maxlength="5" size="30" id="userId"/>
<s:password label="Enter password" key="userPsw" size="30" />
<tr>
<td></td>
<td>
<img src="<c:url value='simple-captcha.png' />" />
<br />
<p onclick="something()">Refresh</p>
</td>
</tr>
<s:textfield label="Enter code" key="captchaResponse" size="30" />
<s:submit value="Login" />
</s:form>
文件:Javascript代码
function something()
{
window.location.reload(true);
}
window.onload = function()
{
var a = sessionStorage.getItem('userId');
if(a !== null) $('#inputName').val(name);
var b = sessionStorage.getItem('userPsw');
if(b !== null) $('#userPsw').val(b);
}
window.onbeforeunload = function() {
sessionStorage.setItem("userId", $('#userId').val());
sessionStorage.setItem("userPsw", $('#userPsw').val());
}
“刷新” 的文字,我想我的加载图形验证码,但我不我不想丢失我的数据。
我指的这个链接:How to reload current page without losing any form data?
但仍然查询没有解决。
可能是一个好主意,只是刷新,而不是整个页面的验证码,?要么创建一些iFrame东西,要么用例如ajax-stuff或类似的东西替换生成的验证码?关键是不刷新整个页面,只刷新应该重新生成的元素 - 因为没有必要刷新单个组件的整个页面:-)。 – vegaasen
@vegaasen感谢您的建议。但我并不擅长JavaScript和jQuery。所以,如果你有答案,请转发给我。 –
*注意*:您不应该在刷新客户端之后直接存储/重新使用用户输入。这为*反射XSS攻击*打开了大门,更多关于此漏洞的信息请访问:https://www.owasp.org/index.php/Cross-site_Scripting_(XSS) –