如何阻止jQuery ajax在发布后再重定向?

前端之家收集整理的这篇文章主要介绍了如何阻止jQuery ajax在发布后再重定向?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个链接来调度一个Ajax POST来执行一个操作.如果用户尚未登录,则操作方法会将302重定向返回到登录页面.如果发生这种情况,我想抓住重定向,以便我可以在灯箱中显示登录表单.

然而,似乎jQuery遵循重定向而不返回控制或调用回调函数.在下面的代码中,不会调用302重定向的警报,并且在调用dataFiler函数时,数据是登录页面内容.

我如何看到页面已经发送了302重定向,并分支到另一个动作?

$.ajax(url,{
            data: postArguments,type : "POST",success: function (data) { alert(' success function'); },statusCode:
            {
                302: function () { alert(' received redirect 302'); },301: function () { alert(' received redirect 301'); }
            },dataFilter: function (data,type) { alert('got data ' + data); return data; }
        });

解决方法

这不是jQuery的限制,而是JavaScript本身;没有办法在JavaScript中检测AJAX请求中的重定向;浏览器XHR对象会自动神奇地隐藏,并按照 the spec按照重定向.

理想的选择是将您的服务器代码中的一个catch添加detect an AJAX request(“HTTP_X_REQUESTED_WITH”头),并返回一个特殊响应来检测JavaScript中的匿名用户,并适当处理.

原文链接:https://www.f2er.com/jquery/180014.html

猜你在找的jQuery相关文章