• 1.1用crystal 2008 和Ajax.dll 5.7.22.2冲突


    enc这个方Ajax一般会在 xxxxx.ashx里生成 一句服务器[AjaxMethod()]的方法,例如

    AddToCustomFavorite:function(type,menuID,callback,context){return new ajax_request(this.url + '?_method=AddToCustomFavorite&_session=r','type=' + enc(type)+ '\r\nmenuID=' + enc(menuID),callback, context);},

    里面调用了enc这个方法,这个方法在ajax/common.ashx

    function enc(s)
    {
        return s.toString().replace(/\%/g, "%26").replace(/=/g, "%3D");
    }

    而crystalreportviews/allinone.js也有一个enc

    function enc()
    // Encode several values
    // Variable number of parameters
    {
        var args=enc.arguments,len=args.length,s='['
        if (len>0) s+=args[0]
        for (var i=1;i<len;i++) s+=','+args[i]
        return s+']'
    }

    ------------------------------------

    造成冲突,Ajax调用到crystal的enc里,每一个传入的值都会加上 []

     ---------------

    靠服务端去出吧,服务端csharp代码大概如此,去[],每个ajax的参数都要去除[]
            public static string AdjustStringParameter(string source)
            {
                string resultValue;
                if (source.StartsWith("[") && source.EndsWith("]"))
                {
                    int len = source.Length;

                    resultValue  = source.Substring(1,len -2 );
                }
                else
                {
                    resultValue = source;
                }
                return resultValue;
            }

  • 相关阅读:
    MongoDB,无模式文档型数据库简介
    数据说话:怎样的程序员最抢手?
    猛醒:也许我们一生追求的都错了!
    中国风电生产监控平台界面
    如何跟着趋势去赚钱
    2015年最好的员工心态培养 -- 我们需要把简单的事情做到极致
    什么是程序员的核心竞争力?
    第一篇 技术选型
    .net core 读取配置文件
    .net core nlog记录日志
  • 原文地址:https://www.cnblogs.com/peteryu007/p/1740040.html
Copyright © 2020-2023  润新知