修改ActiveReports验证文字“给不能为 null 的参数指定一个 null 值”
目前问题:
运行结果:
CODE 为王,直接奉上。
$(document).ajaxSend(function (e, xhr, o) {
// 截获RunReport请求
if (o.url.indexOf('/ActiveReports.ReportService.asmx/RunReport') > 0) {
xhr.abort(); // 终止AR默认请求
$.ajax({
type: "POST",
url: o.url,
global: false, // 这句很重要不再触发ajaxSend事件,不然会走死循环
data: o.data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var msgStr = JSON.stringify(msg);
msgStr = msgStr.replace(/给不能为 null 的参数指定一个 null 值/g, '此字段为必填项');
msg = JSON.parse(msgStr);
o.success(msg);
},
error: o.error
});
}
});
代码的意图很简单:
目前存在的问题就是“给不能为 null 的参数指定一个 null 值”的输出来自后台服务,后台服务不可篡改;
要篡改文字只能通过前台操作
前端解决的原理:
捕获Ajax请求-->终止默认请求-->手动调用Ajax-->篡改返回结果-->调用默认回调函数
解决思路:
1.分析AR生成JS代码
2.分析Jquery类库源码(最开始设想用AjaxComplete事件直接修改返回JSON,后面发现AjaxComplete事件在success调用之后,所以就算修改了也没意义,这也可能是Jquery就是防止这种恶意行为 )
原则上通过分析如果后台“ExtendedErrorInfo”不返回数据,则会走默认的验证字符串(默认验证AR可以修改)
修改为一个人性化的文字,没想到这么波折,希望AR产品组的人员再接再厉,希望后来者可以利用上;
修改ActiveReports验证文字“给不能为 null 的参数指定一个 null 值”的更多相关文章
- MySQL8 修改密码验证插件
MySQL8 修改密码验证插件 查看当前用户使用的密码验证插件 mysql> show variables like '%auth%'; +--------------------------- ...
- Ionic3学习笔记(四)修改返回按钮文字、颜色
本文为原创文章,转载请标明出处 目录 修改返回按钮文字 修改返回按钮颜色 1. 修改返回按钮文字 参考官网 Ionic API---Config 文档 可在 ./src/app/app.module. ...
- 转:修改shape的文字
Sub 修改shape的文字()'' 修改shape的文字 宏' ' ActiveSheet.Shapes.Range(Array("Flowchart: Connector 193& ...
- CSS/Compass修改placeholder的文字样式
在HTML5中,<input>与<textarea>标签支持placeholder属性,用来定义无任何输入时的默认文字. 可以通过CSS修改placeholder的文字样式: ...
- NULL指针引起的一个linux内核漏洞
NULL指针一般都是应用于有效性检测的,其实这里面有一个约定俗成的规则,就是说无效指针并不一定是 NULL,只是为了简单起见,规则约定只要指针无效了就将之设置为NULL,结果就是NULL这个指针被用来 ...
- 为什么获取的System.Web.HttpContext.Current值为null,HttpContext对象为null时如何获取程序(站点)的根目录
ASP.NET提供了静态属性System.Web.HttpContext.Current,因此获取HttpContext对象就非常方便了.也正是因为这个原因,所以我们经常能见到直接访问System.W ...
- null的坑 和 比较运算符、相等运算符的隐式转换问题 (在javascript中,null>=0 为真,null<=0 为真,null==0却为假,null到底是什么?)
null在关系运算中的坑 & 关系运算符的隐式转换问题 注意: 比较运算符 和 相等运算符 的 ECMAscript 语法实现不同. 比较运算符 和 相等运算符 对数据进行了隐式转换, 相当于 ...
- SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值
我们知道SQL SERVER建立链接服务器(Linked Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked S ...
- EntityFramework:值不能为 null。参数名: entitySet 异常解决方案
昨天EF莫名其妙的,掉所有接口访问都出现如下错误:百度,Google了半天,倒是有很多人都遇到了这个问题,但都没有一个解决方案,或者解决方案无效.通过层层排除,终于找到问题的所在.记录下来,给以后再遇 ...
随机推荐
- Linux网络编程---htons函数的使用
htons是将整型变量从主机字节顺序转变成网络字节顺序, 就是整数在地址空间存储方式变为高位字节存放在内存的低地址处. htonl就是把本机字节顺序转化为网络字节顺序所谓网络字节顺序(大尾顺序)就是指 ...
- jmeter 常见问题汇总
文件读取中文乱码: 读取CSV文件,出现中文乱码,纠正方式如下: txt文件乱码 在用到该变量的请求上加上UTF-8 post请求 返回“ Content type 'application/x-ww ...
- linux下一些常用系统命令
查看系统打开的文件数 lsof|wc -l 查看当前目录下的文件数 find -type f | wc -l 查看某个目录下的文件数,注意这里/home包括其所有子目录 find /home -typ ...
- 20155333 2016-2017-2 《Java程序设计》第八周学习总结
20155333 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 认识NIO NIO(New IO)-from JDK1.4 Channel: 衔接数据节点( ...
- Tree Representation Implementation & Traversal
https://github.com/Premiumlab/Python-for-Algorithms--Data-Structures--and-Interviews/blob/master/Tre ...
- SQLInjection 靶场配置
对于渗透,太小型的网站没有太大价值,而大型网站(比如各种电商平台)对于代码审计往往非常严格,新手基本找不到漏洞,而一些比较容易搞掉的站点(政府.gov.各种教育网站.edu或者很多商业中型站点)渗透又 ...
- Django介绍(2)
https://www.cnblogs.com/yuanchenqi/articles/5658455.html
- s28 LNMP架构服务搭建
nginx-location使用 location语法 location使用的语法例子为: location [=|~|~*|^~] uri{ 对location语法列表说明. |1ocation | ...
- python面向对象-1方法、构造函数
类是指:描述一种事物的定义,是个抽象的概念 实例指:该种事物的一个具体的个体,是具体的东西 打个比方: “人”是一个类.“张三”是人类的一个具体例子 在编程时也是同样的道理,你先自己定义一个“类”,当 ...
- web大文件上传(web应用---SSH框架)
版权所有 2009-2018荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/webapp/up6.2/in ...