jQuery不断将帖子数据放入URL

时间:2014-12-10 20:53:51

标签: php jquery session post

我最近遇到了Jquery的麻烦。我希望能够更熟练地使用Jquerys $ .post方法创建一个登录表单,但我遇到了一些麻烦。

由于某些原因当我单击按钮提交时,我要发布的数据将被放入我当前页面的URL中。此外,Jquery仅在此数据位于url中时才起作用。

我不想在网址中向网站访问者显示他们的用户名和密码。为什么不按预期发布数据?

编辑:即使我做了所有的更改,我似乎仍然需要提交表单两次才能实际登录。

//我的请求是在哪里发出的

<script>
    $( document ).ready(function() {
        $( "#loginbtn" ).click(function() {
            var u = $("#loginform input:text" ).val();
            var p = $("#loginform input:password" ).val();
            $.post( "http://www.gameandshame.com/auth/login.php", { username: u, password: p}).done(function( data ) {
            //alert("Data Loaded: " + data);
            location.href = "http://www.gameandshame.com/";
            });
        });
    });
</script>

//数据发布到此处

<?php
session_start();
include_once("".$_SERVER['DOCUMENT_ROOT']."/auth/class_loader.php");
echo "STARTING LOGIN";
    $login = new login();
    $login = $login->startLogin($_POST['username'],$_POST['password']);
?>

//结束我的STARTLOGIN功能

    $_SESSION['t'] = $t;
    $_SESSION['u'] = $u;
    echo "SUCCESS";
    return;

//登录表单

<form method="post" id="loginform">
    <table>
        <tr>
            <td><input name="username" type="text" maxlength="24" placeholder="Username"></td>
        </tr>
        <tr>
            <td><input name="password" type="password" maxlength="24" placeholder="Password"></td>
        </tr>
        <tr>
            <td><input id="loginbtn" type="submit" name="submit" value="Go!" /></td>
        </tr>
    </table>
</form>

老实说,我很遗憾为什么它会在URL中粘贴参数。似乎没有合理的理由,甚至更多。

注意:当我尝试登录并且所有表单数据都在URL中时,仅返回“STARTING LOGIN”。如果URL中没有数据,则甚至不会运行登录脚本。非常奇怪......:S

2 个答案:

答案 0 :(得分:0)

我看到两个问题。

  1. [海报添加完整代码后不再有效]检查您的javascript控制台。没有你的javascript被执行,因为你正在msising a});关闭.click。

  2. [海报添加的HTML代码,仍然有效点但不是错误的来源]没有你的HTML,我在这里说一个猜测。但是我发现你的点击事件中没有e.preventDefault()的问题。如果您的按钮是type =“submit”,您的表单将正常提交。

  3. 包裹所有内容 $(document).ready(function(){[ALL YOUR JS CODE]}); 否则,jQuery会在DOM完全加载之前尝试附加您的click事件。

答案 1 :(得分:0)

我发现了问题。

以我的形式

<input id="loginbtn" type="submit" name="submit" value="Go!" />

当我真正需要做的是从按钮中取出提交时,只需点击即可获取表单详细信息。因为这个type="submit"仍在那里,它正常发布表单,然后尝试再次从JS发布,结果完全搞砸了ajax请求。