Jquery ajax URL使用#符号更改

时间:2013-01-11 02:47:18

标签: jquery ajax jquery-mobile login

我是JQuery的新手。我正在使用JQuery mobile构建一个网站,我被困在登录表单上。我只是想将用户名和密码发送到PHP文件。

当我输入用户名和密码时,它会将我引导至以下链接:

http://www.mydomain.com/mainfolder/#/mainfolder/?username=abc&password=123&myLat=&myLon=

而不是:

http://www.mydomain.com/mainfolder/php/login.php?username=abc&password=123&myLat=&myLon=

我希望有人可以帮助我。对不起,这是我在这个网站上的第一篇文章,我在发布代码时遇到了困难:)

提前致谢。

代码是:

<form id="loginForm">
    <div data-role="fieldcontain">
          <label for="username">username</label>
          <input type="text" name="username" id="username" value="" />
    </div>
    <div data-role="fieldcontain">
          <label for="password">password</label>
          <input type="password" name="password" id="password" value="" />
    </div>
    <input type="hidden" name="myLat" id="myLat" value="">
    <input type="hidden" name="myLon" id="myLon" value="">
    <input type="submit" id ="submit" data-role="button" data-inline="true" value="submit" />
</form>
<p><script type="text/javascript">document.write(new Date());</script></p>
<div id="error"></div>
</div>

<script>
    $(document).ready(function()
        {
            $("#loginForm").submit(function(e)
            { 
                // stop form from submitting normally
                e.preventDefault();
                // clear error html
                $("#error").html('');

                dataString = $("#loginForm").serialize();

                $.ajax(
                {
                    url: "/php/login.php",
                    type: "POST",
                    data: dataString,
                    success: function() 
                    {
                        alert("success");
                        $("#error").html('submitted successfully');
                    },
                    error:function()
                    {
                    alert("failure");
                        $("#error").html('there is error while submit');
                    } 
                });
        });
    });         
    </script>

PHP代码:

<?php
    session_start();

    $username = $_post['username'];
    $password = $_post['password'];

?>

1 个答案:

答案 0 :(得分:1)

您使用的浏览器是什么?尝试制定代码标准投诉,然后重试。据我所知,基于w3规范的表单标记中需要“action”字段。虽然这不会在这里发挥作用,因为你使用ajax可能会混淆浏览器。因此,请将表单开始标记更改为:

<form method="POST" action="/mainfolder/php/login.php" id="loginForm">

还要将脚本声明更改为:

<script type="text/javascript">

看看是否有帮助。

编辑:刚确认操作字段是必需的。见17.3节 http://www.w3.org/TR/html401/interact/forms.html