我想说我已经阅读了所有类似的问题,但找不到我需要的答案。
所以,我在远程主机上有HTML表单,包含用户名,密码和“rememberMe”复选框:
<form method="POST" action="http://1.2.3.4:5000/webman/login.cgi">
<p><input type="text" name="username" value="" placeholder="Username or Email"></p>
<p><input type="password" name="passwd" value="" placeholder="Password"></p>
<p class="remember_me">
<label>
<input type="checkbox" name="rememberme" id="remember_me">
Remember me on this computer
</label>
</p>
<p class="submit"><input type="submit" name="commit" value="Login"></p>
</form>
我想要做的就是将数据从一个表单提交到另一个表单(另一个表单 - 这是我的Synology NAS登录表单)。但问题是,如果我写action="http://1.2.3.4:5000/webman/index.cgi"
,它什么都不做(只是把我发送到第二个登录表单)。
但是当我使用action="http://1.2.3.4:5000/webman/login.cgi"
时,它会将我转发到login.cgi页面,其中只显示以下内容(使用正确的用户名和密码)
{ "result" : "success", "success" : true }
但是:如果我在浏览器中将login.cgi
更改为index.cgi
,那么当我通过默认表单成功登录时,我会转到桌面。
所以,在此基础上,问题是: 如何将数据发送到login.cgi,但是将用户重定向到... / index.cgi?
答案 0 :(得分:0)
您需要两种形式。你不能拥有表格形式。您需要使用javascript在表单之间复制数据。你可以这样做:
function copydata() {
document.form1.username.value = document.form2.username.value;
document.form1.passwd.value = document.form2.password.value;
return 1;
}
如果我说得对,你可以通过两种不同的操作登录。您只需在单击辅助(提交第二个表单)提交按钮时应用此代码一次。
答案 1 :(得分:0)
在<form method="POST" action="http://1.2.3.4:5000/webman/login.cgi">
中,您需要在上方添加target="login_iframe"
以添加第<iframe id="login_iframe" name="login_iframe" width="0" height="0" frameborder="0" style="display: none;" ></iframe>
行。
以下是验证后重定向用户的脚本。请注意,脚本只有一半工作,因为没有条件“如果密码不正确那么它应该弹出题字”
<script>
$(document).ready(function(){
$("#login_iframe").on("load", function(){
location.href = "https://the address of the page/";
});
})
</script>
您应该更改重定向地址。