加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 01:28:14 所属栏目:百科 来源:网络整理
导读:前言: 在正常的AJAX的调用中其回调函数都是可控的数据格式json或者直接就是字符串。 场景: 笔者当前就遇到一个特殊的情况,场景如下: 公司对特殊字符有要求,需要防止Xss攻击,在测试环境中均由项目自行处理,如此ajax中的success与error均可控,如此在前

前言:

在正常的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; } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读