0

我想说我已经阅读了所有类似的问题,但没有找到我需要的答案。

所以,我在远程主机上有一个由用户名、密码和“rememberMe”复选框组成的 HTML 表单:

<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?

4

2 回答 2

0

你需要两个表格。你不能有形式。您需要使用 javascript 在表单之间复制数据。你可以这样做:

function copydata() {
    document.form1.username.value = document.form2.username.value;
    document.form1.passwd.value = document.form2.password.value;
    return 1;
}

如果我做对了,您可以使用两种不同的操作登录。您所要做的就是在单击次要(提交第二个表单)提交按钮时应用此代码一次。

于 2013-08-27T22:06:38.940 回答
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>

您应该更改重定向地址。

于 2016-07-14T08:26:10.507 回答