我有一个ajax调用(从jquery)到login.php并收到一个json响应,如 - {“response”:{“error”:“false”,“user_id”:“141”,“name”:“如”}}。 现在我想将用户重定向到home.php,但不知道如何。 任何建议或示例代码将不胜感激。
谢谢!
答案 0 :(得分:1)
在使用JSON输入的函数中,简单检查响应值(或任何其他条件),如果匹配,则执行重定向:
$.post("action.php", { email: email, password:pass, action:action }, function(json)
{
if (json.response.error)
$(window.location).attr('href', 'home.php?id=' + json.response.user_id);
}, 'json');
在更一般的情况下,您还需要检查login.php是否实际返回,即您提供成功和失败处理程序;成功处理程序,如果JSON存在,如果响应格式正确,则执行其操作;所有其他情况都会重定向到home.php。
考虑添加一个对话框,向用户解释究竟发生了什么,并将位置重定向放在对话框关闭处理程序中。
考虑:您的整个回复似乎位于名为“响应”的词典中。这不是必需的,并强制写json.response.error
和json.response.user_id
而不是json.user_id
。
另外,我假设登录也在会话中保存登录信息;我不相信重定向的id。如果您这样做,任何使用FireBug的用户都可以使用相同的密码登录任何其他用户。
// action.php
// receive parameters
if ($login_ok)
{
$_SESSION['user_id'] = $user_id;
Header('Content-Type: application/json');
die(json_encode(array(
'user_id' => $user_id,
...
)));
}
// Send along the error
然后你重定向到home.php没有user_id,home.php从会话中恢复user_id。
答案 1 :(得分:0)
如果您的代码运行正常,您只需将用户重定向到新的网址即可。使用此JavaScript代码:
window.location.href = "http://www.google.com.pk"; //whichever URL you want
答案 2 :(得分:0)
你需要检查响应,看看是否有错误?尝试这样的事情:
$.ajax({
url: 'ajax/test.html',
dataType: json,
success: function(data) {
//login success
if(!data.response.error){
windown.location='/home.php';
}else{
...
}
}
});
答案 3 :(得分:0)
如果您想使用Javascript重定向,可以使用以下代码
window.location = "http://www.google.com/";
如果您想使用php重定向,可以使用以下代码
header('Location: http://www.example.com/');