asp.net传的值是带class 的标签,用了\",在前台没有值

时间:2022-11-01 23:19:31
如题,我在后台的一个string类型的content 存的html代码,里面有class属性我用了\"的。然后写成json如下
"{\"success\":true,\"msg\":\"" + content + "\"}";
在前台用代码如下
 $.ajax({
                dataTyle:"json",
                type:"POST",
                url:"Timeline.aspx?sub=get",
                success:function(data){
                        alert(data.msg);
                }
            });

这样取出来的值是undefined,打印data就是整个{\"success\":true,\"msg\":\"" + content的内容 + "\"},感觉返回的变成一个字符串而不是json格式了,但是我写了dataType:"json"没报错,是我的content写错了还是怎么回事啊?

11 个解决方案

#1



 $.ajax({
                dataTyle:"json",
                type:"POST",
                url:"Timeline.aspx?sub=get",
                success:function(data){
                       data=evalu('('+data+')');//转成json格式
                        alert(data.msg);
                }
            });

#2


引用 1 楼 yyl8781697 的回复:

 $.ajax({
                dataTyle:"json",
                type:"POST",
                url:"Timeline.aspx?sub=get",
                success:function(data){
                       data=evalu('('+data+')');//转成json格式
                        alert(data.msg);
                }
            });
我直接复制的seccess里面那2句的。然后没弹窗了。

#3


data=eval('('+data+')');//转成json格式

写错了 不好意思

#4


$.getJSON不就成了,不是只有ajax可用

#5


还是没弹窗。我把我的代码发下,看看是不是哪儿写错了。
$.ajax({
                dataTyle:"json",
                type:"POST",
                url:"Timeline.aspx?sub=get",
                success:function(data){
                     data=eval('('+data+')');//转成json格式
                        alert(data.msg);
                    //$(".title + div").html(json.msg+json.msg);
                }
            });

#6




$.ajax({               
           
type:"POST",                
url:"Timeline.aspx?sub=get",               
 success:function(data){                
if (data != "") {
     var json = eval("(" + data + ")");                        
   alert(data.msg);                   
 //$(".title + div").html(json.msg+json.msg);               
 }     
  
当你发现你的弹窗还有错的时候,可能是data.msg也是一组json数据。
$.each(json.msg, function(i, o) {
});
遍历一下。

#7


我把我直接弹出data的图片发出来。 asp.net传的值是带class 的标签,用了\",在前台没有值

#8


后台我是循环取值,然后给的,代码是
content += "<ul class=\"block_ul\"><li><dl><dt class=\"time\"><span>" + date + "</span>" + year + "</dt><dt class=\"content\"><b>" + dt.Rows[i][2].ToString() + "</b><span>" + dt.Rows[i][3].ToString() + "</span></dt></dl></li></ul>"

#9


该回复于2014-03-14 13:10:00被管理员删除

#10


把你后台拼接字符串的双引号全改成单引号

#11


引用 10 楼 zj25810 的回复:
把你后台拼接字符串的双引号全改成单引号
改成单引号不是要提示输入字符过多。

#1



 $.ajax({
                dataTyle:"json",
                type:"POST",
                url:"Timeline.aspx?sub=get",
                success:function(data){
                       data=evalu('('+data+')');//转成json格式
                        alert(data.msg);
                }
            });

#2


引用 1 楼 yyl8781697 的回复:

 $.ajax({
                dataTyle:"json",
                type:"POST",
                url:"Timeline.aspx?sub=get",
                success:function(data){
                       data=evalu('('+data+')');//转成json格式
                        alert(data.msg);
                }
            });
我直接复制的seccess里面那2句的。然后没弹窗了。

#3


data=eval('('+data+')');//转成json格式

写错了 不好意思

#4


$.getJSON不就成了,不是只有ajax可用

#5


还是没弹窗。我把我的代码发下,看看是不是哪儿写错了。
$.ajax({
                dataTyle:"json",
                type:"POST",
                url:"Timeline.aspx?sub=get",
                success:function(data){
                     data=eval('('+data+')');//转成json格式
                        alert(data.msg);
                    //$(".title + div").html(json.msg+json.msg);
                }
            });

#6




$.ajax({               
           
type:"POST",                
url:"Timeline.aspx?sub=get",               
 success:function(data){                
if (data != "") {
     var json = eval("(" + data + ")");                        
   alert(data.msg);                   
 //$(".title + div").html(json.msg+json.msg);               
 }     
  
当你发现你的弹窗还有错的时候,可能是data.msg也是一组json数据。
$.each(json.msg, function(i, o) {
});
遍历一下。

#7


我把我直接弹出data的图片发出来。 asp.net传的值是带class 的标签,用了\",在前台没有值

#8


后台我是循环取值,然后给的,代码是
content += "<ul class=\"block_ul\"><li><dl><dt class=\"time\"><span>" + date + "</span>" + year + "</dt><dt class=\"content\"><b>" + dt.Rows[i][2].ToString() + "</b><span>" + dt.Rows[i][3].ToString() + "</span></dt></dl></li></ul>"

#9


该回复于2014-03-14 13:10:00被管理员删除

#10


把你后台拼接字符串的双引号全改成单引号

#11


引用 10 楼 zj25810 的回复:
把你后台拼接字符串的双引号全改成单引号
改成单引号不是要提示输入字符过多。