我正在开发一个电子商务网站,我需要谷歌登录,所以当用户创建他/她的购物清单并点击添加到列表按钮。我可以通过$.ajax()
方法发送我的数据,所以我真正想要的是当ajax方法的响应来时它应该将我重定向到Login页面如果用户没有登录,否则它应该保存我的对象
答案 0 :(得分:1)
在该.ajax()调用的目标端点中,检查您的身份验证,如果用户未登录,请将响应头设置为 - 401 Unauthorized。
然后在.ajax()中执行此操作:
$.ajax(function() {
//.. your other ajax stuff..//
error: function(jqXHR, textStatus, errorThrown) {
// only redirect if user unauthorized - 'errorThrown' has text part of HTTP status header
if(errorThrown == "Unauthorized") {
window.location.href = "myloginpage.html";
}
}
});
响应头设置为401将触发.ajax()的错误函数,而不是成功函数。
修改强>
将错误功能更改为仅在未授权
另请注意,如果这是一个跨域jsonp调用,它将无法工作,因为jsonp请求无提示失败并且不会触发错误函数
答案 1 :(得分:0)
检查您的响应回调函数并编写您想要的编程逻辑
$.ajax({
'url':location,
'type':type,
'success':function(response){
/*write here your logic*/
},
'error':function(){
/*you code for error handling*/
}
});
通过javascript使用
重定向窗口 window.location.href = 'your location';
答案 2 :(得分:0)
您可以在响应的成功或错误功能中使用window.location ='yourlocation'重定向到登录页面(取决于您从服务器获取的响应。如果您在标题401中带来响应代码,则错误功能将被执行其他明智的成功)。
但我认为你想要的是在用户登录之后将用户带回同一页面。
如果您对此感兴趣,可以使用弹簧安全保护。如果你已经使用弹簧,它很容易集成。 如果你不使用弹簧,你可能会寻找一些替代品。以下链接可以帮助您
答案 3 :(得分:-2)
在jquery中找到了执行此操作的.post()方法。在行动页面,你可以做任何你想做的事。