8

我有这个代码

$(document).delegate('#login', 'pageinit', function(event) {

console.log('inside login page')
$('#loginform').submit(function() {

    // Get the value of the username and password
    var myusername = $("#username").val();
    var mypassword = $("#password").val();

    // Post to the login route
    $.post(global_urlstub + '/customer_login', {username: myusername, password: mypassword}, function(data) {

        alert(data);
        console.log(data);
        if (data.flag == true) {
            alert('123');
            console.log(data);
            jQuery.mobile.changePage('#page1');
        }
        else {
            alert('12345');
            console.log(data);
            $('#errmsg_login').html(data.msg);
        }

    }, "json" );

    return false;

});

});

我的服务器返回带有 key 的哈希flag。但是,此代码未向我返回任何数据到控制台或警报,而发布请求成功。我究竟做错了什么?

4

3 回答 3

4

当您的服务器没有返回有效的 JSON 时会发生这种情况

首先尝试没有数据类型,如下所示..

$.post(global_urlstub + '/customer_login', {username: myusername, password: mypassword}, function(data) {

            alert(data);
            console.log(data);
            if (data.flag == true) {
                alert('123');
                console.log(data);
                jQuery.mobile.changePage('#page1');
            }
            else {
                alert('12345');
                console.log(data);
                $('#errmsg_login').html(data.msg);
            }

        });
于 2013-08-08T08:45:21.620 回答
3

我同意 Hemant_Negi 的观点,即这是服务器未返回有效 JSON 的问题。以下基于您的代码工作正常(那里的 URL 更改也返回有效的 JSON):

var myusername = 'a', mypassword = 'b';
$.post('http://ip.jsontest.com', {username: myusername, password: mypassword}, function(data) {
    alert(data.ip);
    console.log(data);
    if (data.flag == true) {
        alert('123');
        console.log(data);
        jQuery.mobile.changePage('#page1');
    }
    else {
        alert('12345');
        console.log(data);
        $('#errmsg_login').html(data.msg);
    }
}, "json" ).fail( function(jqXHR, textStatus, errorThrown) {
    alert(textStatus);
});

如果您更改该 URL,对 fail() 的调用应该会提示错误消息。

于 2013-08-08T09:10:57.253 回答
0

确保在服务器端脚本中使用任何调试输出代码。

此外,使用 Firebug 或 chrome 工具,您可以轻松地检查来自服务器的响应以查看它是否采用有效的 JSON 格式。

于 2014-10-08T13:08:14.880 回答