我需要知道jquery中$ .ajax()方法的响应类型

时间:2011-12-29 09:03:36

标签: javascript jquery

我正在开发一个电子商务网站,我需要谷歌登录,所以当用户创建他/她的购物清单并点击添加到列表按钮。我可以通过$.ajax()方法发送我的数据,所以我真正想要的是当ajax方法的响应来时它应该将我重定向到Login页面如果用户没有登录,否则它应该保存我的对象

4 个答案:

答案 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中带来响应代码,则错误功能将被执行其他明智的成功)。

但我认为你想要的是在用户登录之后将用户带回同一页面。

如果您对此感兴趣,可以使用弹簧安全保护。如果你已经使用弹簧,它很容易集成。 如果你不使用弹簧,你可能会寻找一些替代品。以下链接可以帮助您

Spring Security Ajax login

http://java.dzone.com/articles/implementing-ajax

答案 3 :(得分:-2)

在jquery中找到了执行此操作的.post()方法。在行动页面,你可以做任何你想做的事。