【问题标题】:javascript send form to spring security validationjavascript 将表单发送到 Spring 安全验证
【发布时间】:2013-06-14 11:11:45
【问题描述】:

我需要通过链接标签提交表单以进行 Spring 安全验证,但这不起作用。代码如下:

<html>
<body>
    <form id="login" method="post" action="/j_spring_security_check">
        <fieldset>
            <input id="username" name="j_username" type="text"/>
            <input id="password" name="j_password" type="password"/>
        </fieldset>
        <fieldset>
            <input type="submit" value="Submit"/>
            <a href="" onclick="postForm();">Demo</a>
        </fieldset>
    </form>
<script type="text/javascript">
    function postForm()
    {
        document.getElementById("username").innerHTML="demo";
        document.getElementById("password").innerHTML="demo";
        document.getElementById("login").submit();
    }
</script>
</body>
</html>

在这里,当用户单击演示链接时,它应该授权并转移到演示页面,但它没有发布到 Spring Security,而我通过按钮提交工作。如何通过 HTML 链接进行授权?

【问题讨论】:

    标签: javascript html spring xhtml spring-security


    【解决方案1】:

    你需要阻止anchor元素的默认操作

    <a href="#" onclick="return postForm();">Demo</a>
    

    <script type="text/javascript">
        function postForm()
        {
            document.getElementById("username").value="demo";
            document.getElementById("password").value="demo";
            document.getElementById("login").submit();
            return false;
        }
    </script>
    

    演示:Plunker

    【讨论】:

    • 是的,这是我在 stackoverflow 上编写时的错误,在我的代码中它已经关闭了大括号,但仍然无法正常工作......
    • @Olzhas 还有.innerHTML 是错误的,你需要使用.value="demo"
    • 不,控制台没有显示任何错误,我已更改为 '.value="demo"',仍然没有成功,但函数被调用,因为我使用 'alert("函数被调用")' ,也许它没有正确提交表单,不知道......
    • 现在代码越来越好,它填满了表格,但也许 .submit() 不起作用或者它不被 Spring Security 接受?我不知道
    猜你喜欢
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多