$ .post json请求不会返回任何结果

时间:2012-04-16 18:39:02

标签: php jquery ajax json .post

嗯,另一次尝试:

这是我正在使用的所有jquery代码,也许我在$ .post()之前的代码中出了问题。我使用相同形式的onclick调用以下函数...

function setLogin()
{

$('#login-form').submit(function(e) {
    e.preventDefault();
            //passing form field to vars
    var formUsername=$("#login-form #username").val();
    var formPassword=$("#login-form #password").val();
            //checks on fields lenght
    if((formUsername.length<6))
    {
        $("#ajax-output").html("<div class='error'>Attenzione username troppo breve!</div>");
    }
    else if((formPassword.length<6))
    {
        $("#ajax-output").html("<div class='error'>Attenzione password troppo breve!</div>");
    }
    else
    {
        $.post(
                            //the url
            '?module=login',

                            //data got from login form
            {
                "username": formUsername,
                "password": formPassword,
            },
            //response
            function(data){
                $("#ajax-output").html(data.reply)
            },
            //type
            "json"

        );
    }
});
}

我在php文件中只尝试了这个代码,它仍然没有返回任何内容......

function Login()
{
    //just to try
echo json_encode(array('reply'=>'foo'));
}

它仍然不起作用......

2 个答案:

答案 0 :(得分:2)

你确定该帖子是在第一时间运行吗?

使用Firebug!(或Chrome的内置开发者工具)

您可以使用firebug来分开网页的每一个部分。

它有一个“网络”标签,显示浏览器发出的每个请求,包括AJAX请求及其结果,标题和内容。

使用它来查看您的请求是否真正发生,以及结果如何。然后从那里拿走它。

答案 1 :(得分:0)

确保在响应时为内容类型设置标头 - 如果浏览器不知道它正在接收JSON,则可能不会尝试使用JSON。

function Login()
{
    header('Content-Type: application/json');
    echo json_encode(array('reply'=>'foo'));
}