ajax特殊情况下被动返回了新页面的处理方法

前言:

在正常的AJAX的调用中其回调函数都是可控的数据格式json或者直接就是字符串。

场景:

笔者当前就遇到一个特殊的情况,场景如下:

公司对特殊字符有要求,需要防止Xss攻击,在测试环境中均由项目自行处理,如此ajax中的success与error均可控,如此在前台交互告知用户存在特殊字符。

而在正式的生产环境中,公司的防火墙也做了特殊字符处理,而且在捕获特殊字符时,会直接跳转到错误页面。

这样就产生了一个问题:在ajax中,如果传入的参数中包含了特殊字符,那么返回data数据,就会是那个防火墙跳转的错误页面。此时在ajax中就需要做特殊处理。

由于考虑到参数传入后的结果处理方式有两种直接跳转到新的URL和Ajax处理,而在跳转新的URL的逻辑中,防火墙的此种处理方式,可以很好的衔接而不会太大的降低用户体验。

那么如上的场景中,在AJAX中的处理,就需要考虑到,当返回的是新页面时,如何才能将这个返回的页面作为新页面或者替换当前页面的内容展示给用户呢?

处理方法:

如下为处理方式:

error : function(data) {
            if (data.responseText.indexOf("DOCTYPE")>=0) {
                $(document).find("html").html(data.responseText);
                //$.MsgBox.Alert("温馨提示", "您的操作有可能对网站造成安全威胁,已被拦截");
                return false;
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值