我无法进入我的jquery函数的成功块

时间:2015-06-19 20:21:18

标签: php jquery ajax

我在下面的jquery函数中有点卡住了。

情况如下:

1)我的php返回有效JSON - 当我将$_POST更改为$_GET并手动通过网址传递数据时,我可以对此进行测试。

2)以下功能可以正常工作到$.ajax部分。

3)该函数始终返回ready state 0

如果您需要更多数据,请与我们联系。浏览Stack Overflow和其他论坛的日子有助于洞察力,但我似乎无法修复我的实例。

//HTML
<form class="login-form"  method="POST">
    <input type="text"      id="name"   name="name"     value="" placeholder="Username" required="yes">
    <input type="password"  id="pwd"    name="pwd"      value="" placeholder="Password" required="yes">
    <input type="submit"    id="login"  name="login"    value="Login" class="loginbutton" >
</form>

//JavaScript
$('#login').click(function(event) 
{
    //event.preventDefault();

    var u = $('#name').val();
    var p = $('#pwd').val();

    console.log(u, p);
    console.log("I am seeing this function?");

    $.ajax({

        contentType: "application/json; charset=utf-8",
        cache: false,
        type: "POST",
        url: "functions/login.php",
        data: {name:u, pwd:p},
        datatype: "json",
        error: function(msg)
        {
            console.log("RS - "+msg.readyState);    
            console.log(msg);
        },
        success: function(msg)
        {   
            console.log("RS - "+msg.readyState);
            console.log(msg);

            $.each( msg, function( i, val ) {
                console.log(val[0].session); //session is a variable in the json string
            });

            console.log("Success block");
        }

    });
});

2 个答案:

答案 0 :(得分:0)

数据类型 - &gt; dataType问题,如果它没有帮助尝试&#39;文本&#39;类型。 也许php服务器会发送其他混乱的东西。

答案 1 :(得分:0)

点击事件处理程序末尾缺少

event.preventDefault()return false。引自w3schools

  

event.preventDefault()方法停止发生元素的默认操作。

因此,在我们的案例中,它会阻止表单发送。

这两项技术可防止事件冒泡。没有它们,表单将被发送到自身(脚本的地址),这将导致页面刷新并停止执行脚本。

您可以从readyState函数中查看结果($.ajax()),因为它比页面重新加载更快。