实在整不明白 请教各位大侠

初心不变时过迁 2013-08-13 05:30:41
一段很简单的代码、、


var System={};
var t=document.getElementsByTagName("SCRIPT");
t=(System.scriptElement=t[t.length-1]).src.replace(////g, "/");
System.path=(t.lastIndexOf("/")<0)?".":t.substring(0, t.lastIndexOf("/"));
var path = System.path;
path = path.replace(".","")

//。。。。。

$.post(path + "DataManager.ashx", { type: "getspotstree" }, function (data) {
//alert 无效 (服务器) 本地调试没有一点问题
$("#tt2").tree("loadData", data);//无效
}, 'json')


各个浏览器调试都没有报错

本地(我自己的机子上)不管怎么调试都没问题。。 但是到了服务器那边不知怎么的就是没有效果(post内的代码不执行)

这是啥问题额
...全文
630 79 打赏 收藏 转发到动态 举报
写回复
用AI写文章
79 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐的小菜鸟 2013-08-17
  • 打赏
  • 举报
回复
不知道你的json串是不是也有个bom头 我的是因为有个bom头 在chrome等浏览器可以正常解析 但是ie 6 7无法解析 目前正在解决。 情况和你说的相似,返回200 4 但是报的是字符串解析错误
叫我三三 2013-08-15
  • 打赏
  • 举报
回复
上面补充一点 $.ajax 的 dataType: "text"要对应
叫我三三 2013-08-15
  • 打赏
  • 举报
回复
引用 61 楼 ShenShiampMoYi 的回复:
[quote=引用 59 楼 kansousama 的回复:] 把error: function (e) 的e的结果发出来
如果是“如果走这里,表示json格式错误” ? 我很好奇一个问题 我本机和服务器 aspx 和ashx 里面的代码完全是一样的 为什么我本机上完全没有问题 不论直接JSON 还是 sting 转JSON 可是服务器端就是不行???? [/quote] 你在ashx里写的是 context.Response.ContentType = "application/json" 这样表示传出的结果是应该是json格式的,如结果不是json,或者看起来是json但不符合json的语法,都会到失败里面。 我让你改成 context.Response.ContentType = "text/plain"; 表示只要是文本就没问题,就会成功。 所以如果前一种情况失败,而后面一种情况成功,表示你的json格式有问题。
  • 打赏
  • 举报
回复
脑子乱了 今天测的结果又和昨天不一样、、
  • 打赏
  • 举报
回复
刚根据error:e 调试改了下路径 (路径上的。。/去掉 路径问题) 跳到success 但tree只出现节点未出现文本 .. 我再检查下代码
  • 打赏
  • 举报
回复
引用 59 楼 kansousama 的回复:
把error: function (e) 的e的结果发出来
如果是“如果走这里,表示json格式错误” ? 我很好奇一个问题 我本机和服务器 aspx 和ashx 里面的代码完全是一样的 为什么我本机上完全没有问题 不论直接JSON 还是 sting 转JSON 可是服务器端就是不行????
叫我三三 2013-08-15
  • 打赏
  • 举报
回复
这是我写的一个根据json生成菜单的方法。在服务器上用着没问题。你可以看着改一下

public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string type = context.Request["type"];
            string s = string.Empty;
            using (M.userMenu um = new M.userMenu())
            {
                if (type.ToLower() == "list")
                {
                    s = um.list_Menu();
                }
                else if (type.ToLower() == "long")
                {
                    s = um.long_Menu();
                }
                else {
                    s = "";
                }
            }
            context.Response.Write(s);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }

getMenus: function () {
        //s值为 list long
        var loadMenu = function (s,f1,f2) {
            $.ajax({
                type: "post", dataType: "text", context: $("#"+s),
                url: "/ajax/navbar.ashx",
                data: [{ name: 'type', value: s }],
                beforeSend: function () {
                    $(this).html("加载中...");
                },
                success: function (e) {
                    $(this).html(GetMenu(JSON.parse(e)));
                    if (f1) {
                        (f1)(e);
                    }
                },
                error: function (e) {
                    $(this).html("<a>加载失败!"+e[1]+"</a>");
                },
                complete: function (e) {
                    if (f2) {
                        (f2)(e);
                    }
                }
            });
        }
叫我三三 2013-08-15
  • 打赏
  • 举报
回复
把error: function (e) 的e的结果发出来
  • 打赏
  • 举报
回复
引用 48 楼 ftiger 的回复:
你的json肯定拼得有问题,没有使用json库吗?什么语言开发的?
有的~~ 不过这个TREE需要的JSON数据比较特殊 我就手动构了一个 需求上有这个需要
  • 打赏
  • 举报
回复
引用 49 楼 KK3K2005 的回复:
[quote=引用 47 楼 ShenShiampMoYi 的回复:] 为虾米啊·!! N种法子 自个电脑都是坨坨的·~ 服务器就是P也不放一个
把网址放出来帮你看下[/quote] 还没放到外网上、、 将来估计都不会有、、 他们内部用
  • 打赏
  • 举报
回复


引用 55 楼 kansousama 的回复:
context.Response.ContentType = "text/plain";这个改成text


$.ajax({
type: 'post',cache: true, dataType: 'text',
url: '../xx.ashx',
data: { type: "getspotstree" },
success: function (result) {
alert("如果走这里,表示json格式错误");
var obj = JSON.parse(result);
},
error: function (e) {
alert('获取数据错误');
}
});
叫我三三 2013-08-15
  • 打赏
  • 举报
回复
context.Response.ContentType = "text/plain";这个改成text $.ajax({ type: 'post',cache: true, dataType: 'text', url: '../xx.ashx', data: { type: "getspotstree" }, success: function (result) { alert("如果走这里,表示json格式错误"); var obj = JSON.parse(result); }, error: function (e) { alert('获取数据错误'); } });
  • 打赏
  • 举报
回复
我再找找 IIS 上面有没什么问题 我现在AJAX调试 studes :OK responseText得到的JSON 在JSON查看器中是可以正常转为JSON的 查资料说是数据格式有问题
  • 打赏
  • 举报
回复
引用 52 楼 kansousama 的回复:
ashx使用传回text文本,然后用js转为json。如果这样成功的话,就证明你的json格式是错误的
我后台

  context.Response.Clear();
                    context.Response.ContentEncoding = Encoding.UTF8;//这俩行注释前前台alert出object
                    context.Response.ContentType = "application/json";//注释后前台直接alert出文本
                    context.Response.Write(value);
                    context.Response.Flush();
                    context.Response.End();
注释后alert出文本在前台转JSON 再赋给tree (本机没问题,服务器 不行)
叫我三三 2013-08-15
  • 打赏
  • 举报
回复
ashx使用传回text文本,然后用js转为json。如果这样成功的话,就证明你的json格式是错误的
叫我三三 2013-08-15
  • 打赏
  • 举报
回复
tabletojson

public static string TableToJson(DataTable table)
        {
            if (table == null)
            {
                return "";
            }
            StringBuilder json = new StringBuilder();
            json.Append("[");
            for (int i = 0; i < table.Rows.Count; i++)
            {
                DataRow row = table.Rows[i];

                json.Append("{");
                for (int j = 0; j < table.Columns.Count; j++)
                {
                    string columnName = table.Columns[j].ColumnName;
                    string columnType = table.Columns[j].DataType.Name;

                    if (columnType == "Int32" || columnType == "Int16" || columnType == "Decimal")
                    {
                        json.AppendFormat("\"{0}\":\"{1}\"", columnName, row.IsNull(columnName) ? "" : row[columnName]);
                    }
                    else if (columnType == "Boolean")
                    {
                        json.AppendFormat("\"{0}\":{1}", columnName, row.IsNull(columnName) ? "" : row[columnName].ToString().ToLower());
                    }
                    else
                    {
                        json.AppendFormat("\"{0}\":\"{1}\"", columnName, HttpUtility.HtmlEncode(row[columnName].ToString().Trim()));
                    }

                    if (j < table.Columns.Count - 1) json.Append(",");
                }
                json.Append("}");
                if (i < table.Rows.Count - 1) json.Append(",");
            }
            json.Append("]");
            return json.ToString();
        }
不是table的请使用json库

using System.Web.Script.Serialization;
public static string toJson<T>(T t)
        {
            return new JavaScriptSerializer().Serialize(t);
        }
        public static T toEntity<T>(string strJson)
        {
            return new JavaScriptSerializer().Deserialize<T>(strJson);
        }
IssacChow 2013-08-15
  • 打赏
  • 举报
回复
引用 47 楼 ShenShiampMoYi 的回复:
为虾米啊·!! N种法子 自个电脑都是坨坨的·~ 服务器就是P也不放一个
首先:你确定服务器上之后能够获取到数据。即:path路径正确。 第二:你可以将text的值全部转码,然后到页面上进行解码。就不需要去replace(////g,'/') 第三:检查你的dom节点是否有问题。是否有重复。等等 如果这三个都做好了,应该就没有问题了
  • 打赏
  • 举报
回复
叫我三三 2013-08-15
  • 打赏
  • 举报
回复
你可以使用国产的ztree http://www.ztree.me/v3/demo.php#_101 对汉字兼容性要好一些
叫我三三 2013-08-15
  • 打赏
  • 举报
回复

var a = '[{"id":-2,"text":"自定义组视图"},{"id":-1,"text":"所有测点","iconCls":"ico_blank","children":[{"id":0,"text":"调理包装间SPL温度"},{"id":1,"text":"调理包装间SPL湿度"},{"id":2,"text":"调理包装间温度"},{"id":3,"text":"调理包装间湿度"},{"id":4,"text":"SPL出料口温度"},{"id":5,"text":"SPL出料口湿度"},{"id":6,"text":"二元库冻结温度"},{"id":7,"text":"SPL冻结温度"},{"id":8,"text":"SPL蒸发器温度"},{"id":9,"text":"2楼1#"},{"id":10,"text":"2楼2#"},{"id":11,"text":"4楼1#"},{"id":12,"text":"4楼2#"},{"id":13,"text":"4楼3#"},{"id":14,"text":"4楼4#"},{"id":15,"text":"A库A-1"},{"id":16,"text":"A库A-2"},{"id":17,"text":"A库A-3"},{"id":18,"text":"A库A-4"},{"id":19,"text":"A库A-5"},{"id":20,"text":"A库A-6"},{"id":21,"text":"B库B-1"},{"id":22,"text":"B库B-2"},{"id":23,"text":"B库B-3"},{"id":24,"text":"B库B-4"},{"id":25,"text":"B库B-5"},{"id":26,"text":"B库B-6"},{"id":27,"text":"C库C-1"},{"id":28,"text":"C库C-2"},{"id":29,"text":"C库C-3"},{"id":30,"text":"C库C-4"},{"id":31,"text":"C库C-5"},{"id":32,"text":"C库C-6"},{"id":33,"text":"D库D-1(右)"},{"id":34,"text":"D库D-2(左)"},{"id":35,"text":"E库(一层)"},{"id":36,"text":"E库(二层)"},{"id":37,"text":"一楼米汉堡夹层"},{"id":38,"text":"三楼夹层温度"},{"id":39,"text":"酒精出口温度"},{"id":40,"text":"酒精进口温度"},{"id":41,"text":"新库1#"},{"id":42,"text":"新库2#"},{"id":43,"text":"新库3#"},{"id":44,"text":"新库4#"},{"id":45,"text":"新库5#"},{"id":46,"text":"新库6#"},{"id":47,"text":"新库7#"},{"id":48,"text":"新库8#"},{"id":49,"text":"新库9#"},{"id":50,"text":"新库10#"},{"id":51,"text":"新库11#"},{"id":52,"text":"新库12#"},{"id":53,"text":"新库13#"},{"id":54,"text":"新库14#"},{"id":55,"text":"新库15#"},{"id":56,"text":"新库16#"},{"id":57,"text":"龙眼干库1#温度"},{"id":58,"text":"龙眼干库1#湿度"},{"id":59,"text":"龙眼干库2#温度"},{"id":60,"text":"龙眼干库2#湿度"},{"id":61,"text":"预冷1#机(酒精冻结)75马力"},{"id":62,"text":"预冷2#机(酒精冻结)75马力"},{"id":63,"text":"空调1#机      75马力"},{"id":64,"text":"空调2#机          40马力"},{"id":65,"text":"螺杆机组1#    (龙眼干库)200马力"},{"id":66,"text":"螺杆机组2#     (龙眼干库)150马力"},{"id":67,"text":"冰水1#机        30马力"},{"id":68,"text":"冰水2#机       30马力"},{"id":69,"text":"冰水3#机      75马力"},{"id":70,"text":"螺杆(2-2)    200马力"},{"id":71,"text":"螺杆(2-1)       200马力"},{"id":72,"text":"螺杆(1-2)        200马力"},{"id":73,"text":"螺杆(1-1)      200马力"},{"id":74,"text":"3#卤水机       30马力"},{"id":75,"text":"2#卤水机       30马力"},{"id":76,"text":"1#卤水机      30马力"},{"id":77,"text":"空(无接设备)"},{"id":78,"text":"卤水温度(真空冷却机)"},{"id":79,"text":"冰水温度(制冷房)"},{"id":80,"text":"煎蛋车间1#冷藏库"},{"id":81,"text":"煎蛋车间包装车间"},{"id":82,"text":"煎蛋车间2#冷藏库"},{"id":83,"text":"煎蛋车间解冻间"},{"id":84,"text":"空5PT100"},{"id":85,"text":"空6PT100"},{"id":86,"text":"空7T100"},{"id":87,"text":"空8PT100"},{"id":88,"text":"煎蛋车间1#冷藏库(缩压机)10马力)"},{"id":89,"text":"煎蛋车间包装车间(压缩机)"},{"id":90,"text":"煎蛋车间2#冷藏库(压缩机)10马力"},{"id":91,"text":"煎蛋车间搅拌间(压缩机)15马力"},{"id":92,"text":"煎蛋车间解冻室(压缩机)"},{"id":93,"text":"5楼顶层3#锅炉e(0.5吨)"},{"id":94,"text":"空15(开关量)"},{"id":95,"text":"空16(开关量)"},{"id":96,"text":"仪表箱内温度"},{"id":97,"text":"螺杆LY-3e(压缩机300马力)"},{"id":98,"text":"C1(C库压缩机)      30马力"},{"id":99,"text":"C2(C库压缩机)       30马力"},{"id":100,"text":"C4(C库压缩机)       30马力"},{"id":101,"text":"B1(B库压缩机)e30马力"},{"id":102,"text":"B2(B库压缩机)      30马力"},{"id":103,"text":"B3(B库压缩机)      30马力"},{"id":104,"text":"B4(B库压缩机)      30马力"},{"id":105,"text":"A1(A库压缩机)    30马力"},{"id":106,"text":"A2(A库压缩机)      30马力"},{"id":107,"text":"A3(A库压缩机)      30马力"},{"id":108,"text":"A4(A库压缩机)      30马力"},{"id":109,"text":"K5(D库-左)      30马力"},{"id":110,"text":"K3(D库-左) e30马力"},{"id":111,"text":"K4(D库-右)      30马力"},{"id":112,"text":"锅炉1e(2吨)"},{"id":113,"text":"锅炉2e(2.5吨)"},{"id":114,"text":"二楼仪表箱内温度"},{"id":115,"text":"旧原料场高温库压缩机(30马力)"},{"id":116,"text":"素食生产线温度"},{"id":117,"text":"一楼冷藏库e(左-靠办公室)"},{"id":118,"text":"11米通道库1#"},{"id":119,"text":"11米通道库2#"},{"id":120,"text":"二楼3#e(左-靠办公室)"},{"id":121,"text":"二楼4#e(左-靠办公室)"},{"id":122,"text":"二楼1#e(右-靠机房)30马力"},{"id":123,"text":"二楼2#(右-靠机房)"},{"id":124,"text":"调理包装间预冷室"},{"id":125,"text":"调理前处理冷藏室"},{"id":126,"text":"空11(PT100)"},{"id":127,"text":"空12(PT100)"},{"id":128,"text":"空13(PT100)"},{"id":129,"text":"空14(PT100)"},{"id":130,"text":"空15(PT100)"},{"id":131,"text":"空16(PT100)"},{"id":132,"text":"二楼E1(压缩机)     右-靠机房30马力"},{"id":133,"text":"A1(一楼压缩机)  右-靠机房30马力"},{"id":134,"text":"二楼E3(压缩机)     右-靠办公室30马力"},{"id":135,"text":"11米通道库A3       (压缩机)30马力"},{"id":136,"text":"二楼E4(压缩机)     左-靠办公室30马力"},{"id":137,"text":"二楼E5(压缩机)    左-靠办公室30马力"},{"id":138,"text":"A2(一楼压缩机)     左-靠办公室30马力"},{"id":139,"text":"四楼F4(压缩机)     右-靠机房30马力"},{"id":140,"text":"四楼F3(压缩机)      右-靠机房30马力"},{"id":141,"text":"四楼F2(压缩机)e右-靠机房30马力"},{"id":142,"text":"四楼F1(压缩机)      右-靠机房30马力"},{"id":143,"text":"平板机(压缩机)      30马力"},{"id":144,"text":"米汉堡(压缩机)e75马力"},{"id":145,"text":"二元机组(压缩机)       50马力"},{"id":146,"text":"调理包装间预冷室"},{"id":147,"text":"调理前处理冷藏室e(压缩机)"},{"id":148,"text":"锅炉2烟囱温度"},{"id":149,"text":"锅炉1烟囱温度"},{"id":150,"text":"A相电压"},{"id":151,"text":"B相电压"},{"id":152,"text":"C相电压"},{"id":153,"text":"A相电流"},{"id":154,"text":"B相电流"},{"id":155,"text":"C相电流"},{"id":156,"text":"A相有功功率"},{"id":157,"text":"B相有功功率"},{"id":158,"text":"C相有功功率"},{"id":159,"text":"总有功功率"},{"id":160,"text":"A相无功功率"},{"id":161,"text":"B相无功功率"},{"id":162,"text":"C相无功功率"},{"id":163,"text":"总无功功率"},{"id":164,"text":"A相视在功率"},{"id":165,"text":"B相视在功率"},{"id":166,"text":"C相视在功率"},{"id":167,"text":"总视在功率"},{"id":168,"text":"A相功率因素"},{"id":169,"text":"B相功率因素"},{"id":170,"text":"C相功率因素"},{"id":171,"text":"总功率因素"},{"id":172,"text":"线频率"},{"id":173,"text":"有功电能"},{"id":174,"text":"无功电能"},{"id":175,"text":"米汉堡除湿机"},{"id":176,"text":"素食生产线温度"},{"id":177,"text":"素食生产线湿度"},{"id":178,"text":"米汉堡冻结间温度"},{"id":179,"text":"米汉堡冻结间湿度"},{"id":180,"text":"200HP-A相电压"},{"id":181,"text":"200HP-B相电压"},{"id":182,"text":"200HP-C相电压"},{"id":183,"text":"200HP-A相电流"},{"id":184,"text":"200HP-B相电流"},{"id":185,"text":"200HP-C相电流"},{"id":186,"text":"200HP-A相有功功率"},{"id":187,"text":"200HP-B相有功功率"},{"id":188,"text":"200HP-C相有功功率"},{"id":189,"text":"200HP-总有功功率"},{"id":190,"text":"200HP-A相无功功率"},{"id":191,"text":"200HP-B相无功功率"},{"id":192,"text":"200HP-C相无功功率"},{"id":193,"text":"200HP-总无功功率"},{"id":194,"text":"200HP-A相视在功率"},{"id":195,"text":"200HP-B相视在功率"},{"id":196,"text":"200HP-C相视在功率"},{"id":197,"text":"200HP-总视在功率"},{"id":198,"text":"200HP-A相功率因素"},{"id":199,"text":"200HP-B相功率因素"},{"id":200,"text":"200HP-C相功率因素"},{"id":201,"text":"200HP-总功率因素"},{"id":202,"text":"200HP-线频率"},{"id":203,"text":"200HP-A相有功电能"},{"id":204,"text":"200HP-B相有功电能"},{"id":205,"text":"200HP-C相有功电能"},{"id":206,"text":"200HP-合相有功电能"},{"id":207,"text":"200HP-A相无功电能"},{"id":208,"text":"200HP-B相无功电能"},{"id":209,"text":"200HP-C相无功电能"},{"id":210,"text":"200HP-合相无功电能"},{"id":211,"text":"200HP-A相电流与电压相角"},{"id":212,"text":"200HP-B相电流与电压相角"},{"id":213,"text":"200HP-C相电流与电压相角"},{"id":214,"text":"200HP-合相电流与电压相角"},{"id":215,"text":"200HP-ABC相电流矢量和的有效值"},{"id":216,"text":"200HP-ABC相电压矢量和的有效值"}]}]',
            b = a.replace(/[^\x00-\xff]/ig, "a");
$("#tt2").tree("loadData", JSON.parse(b));
加载更多回复(59)

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧