Active Report検証テキストを修正します。「nullにできないパラメータにnull値を指定します。」

4914 ワード

回転:
http://gcdn.gcpowertools.com.cn/showtopic-13759.html
Active Report公式サイト:
http://www.gcpowertools.com.cn/products/activereports_overview.htm
 
現在の問題:
修改ActiveReports验证文字“给不能为 null 的参数指定一个 null 值”_第1张图片
実行結果:
修改ActiveReports验证文字“给不能为 null 的参数指定一个 null 值”_第2张图片
QQスクリーンショット20140911171128.png(14.68 K)
2014-9-12 11:02:28
コードは王として、直接お届けします。
          $(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値を指定できない」という出力はバックグラウンドサービスから来ています。バックグラウンドサービスは改竄できません。
修改ActiveReports验证文字“给不能为 null 的参数指定一个 null 值”_第3张图片
QQスクリーンショット201409121022942.png(59.20 K)
2014-9-12 11:02:28
文字を改竄するにはフロントでしか操作できません。
先端解決の原理:
キャプチャAjax要求->デフォルト要求の終了->手動でAjaxを呼び出します。
解決策:
1.ARを分析してJSコードを生成する
2.Jqueryライブラリのソースコードを分析する(最初はAjaxCopleteイベントで直接JSONに戻ることを想定していたが、後にAjaxCopleteイベントがsuccessで呼び出されたことを発見したので、修正しても意味がない。これはJqueryがこのような悪意を防ぐ行為かもしれない)
基本的には、バックグラウンドの「ExtededErroInfo」がデータに戻らない場合、デフォルトの検証文字列を実行します(デフォルトの検証ARは変更できます)。
修改ActiveReports验证文字“给不能为 null 的参数指定一个 null 值”_第4张图片
QQスクリーンショット20140912105601.png(74.01 K)
2014-9-12 11:02:28
人間化された文字に修正しましたが、このような波乱が予想できませんでした。AR製品チームの人員がもっと厳しくなることを望んでいます。後から利用できるように。