0

好吧,再试一次:

这是我正在使用的所有 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'));
}

它仍然不起作用...

4

2 回答 2

2

您确定该帖子首先正在运行吗?

使用萤火虫!(或 chrome 的内置开发者工具)

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

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

使用它来查看您的请求是否真的被提出,以及结果是什么。然后从那里拿走。

于 2012-04-16T18:43:13.267 回答
0

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

function Login()
{
    header('Content-Type: application/json');
    echo json_encode(array('reply'=>'foo'));
}
于 2012-04-16T21:11:15.397 回答