jQuery post返回没有响应数据

时间:2013-08-08 08:40:38

标签: javascript jquery ajax post

我有这段代码

$(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;

});

});

我的服务器使用密钥flag返回哈希值。但是,此代码不会向控制台或警报返回任何数据,而发布请求成功。我做错了什么?

3 个答案:

答案 0 :(得分:3)

当服务器未返回有效的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);
            }

        });

答案 1 :(得分: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()的调用应警告错误消息。

答案 2 :(得分:0)

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

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