好吧,再试一次:
这就是我正在使用的所有 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'));
}
它仍然不起作用...
你确定这篇文章首先被运行了吗?
使用萤火虫!(或Chrome的内置开发者工具)
你可以使用Firebug来挑选网页的每一个部分。
它有一个"net"选项卡,显示浏览器发出的每个请求,包括 AJAX 请求及其结果、标头和内容。
使用它来查看您的请求是否真的被提出,以及结果是什么。 然后从那里拿走它。
确保在响应时为内容类型设置标头 - 如果浏览器不知道它正在接收 JSON,则可能不会尝试使用 JSON。
function Login()
{
header('Content-Type: application/json');
echo json_encode(array('reply'=>'foo'));
}