嗯,另一次尝试:
这是我正在使用的所有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'));
}
它仍然不起作用......
答案 0 :(得分:2)
你确定该帖子是在第一时间运行吗?
使用Firebug!(或Chrome的内置开发者工具)
您可以使用firebug来分开网页的每一个部分。
它有一个“网络”标签,显示浏览器发出的每个请求,包括AJAX请求及其结果,标题和内容。
使用它来查看您的请求是否真正发生,以及结果如何。然后从那里拿走它。
答案 1 :(得分:0)
确保在响应时为内容类型设置标头 - 如果浏览器不知道它正在接收JSON,则可能不会尝试使用JSON。
function Login()
{
header('Content-Type: application/json');
echo json_encode(array('reply'=>'foo'));
}