首页 新闻 会员 周边 捐助

json传值到后台,里面包含html标签的话报错

0
悬赏园豆:5 [已解决问题] 解决于 2014-11-13 14:40

界面传值是这样的

[{"ButtonType":"0","Content":"速速点击玩游戏赢小谷家门票啦~<a href=\"http://182.92.186.247/xxxxnpan/huaqiaocheng/home.jsp?vtype=2\">免费旅行</a>"}]

 

怎么解决,关于上传文件中json内容包含html标签不识别问题

问题补充:

var Content = $(this).find("td:eq(1)").html();

 

其内容就是:

速速点击玩游戏赢小谷家门票啦~<a href=\"http://182.92.186.247/xxxxnpan/huaqiaocheng/home.jsp?vtype=2\">免费旅行</a>

 

这个就是包含html标签的变量

现在我的问题就是,利用json传值,会报错,说不能识别html标签,怎么样处理一下这个a 标签,让它传成功

今年过年前瘦8斤的主页 今年过年前瘦8斤 | 初学一级 | 园豆:94
提问于:2014-11-13 11:33
< >
分享
最佳答案
0

吧内容编下码再传进去

收获园豆:1
程序员编程日记 | 初学一级 |园豆:6 | 2014-11-13 12:47
其他回答(8)
0

把\变成\\\

收获园豆:1
undefined | 园豆:898 (小虾三级) | 2014-11-13 11:36

哥,关键就是我不知道怎么写

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 11:39

 ResponseMessages.splice(ResponseMessages.length, 0, ResponseMessage);

这个ResponseMessages就是它:

[{"ButtonType":"0","Content":"速速点击玩游戏赢小谷家门票啦~<a href=\"http://182.92.186.247/xxxxnpan/huaqiaocheng/home.jsp?vtype=2\">免费旅行</a>"}]

现在就是不知道怎么去处理这个ResponseMessages

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 11:40
0

.replace('\','\\\');在返回后替换!

大楚打码人 | 园豆:4313 (老鸟四级) | 2014-11-13 11:42

它在前台传的时候就报错,根本传不到后台

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 11:51

@魔女小溪: 看报的什么错,如果是字符引起的,就传之前替换掉。ResponseMessage.replace格式化掉你的字符。编辑器里的东西都可以传到后台,所以你的报错肯定是字符引起的。去掉a标签,试试,一个个解决。

支持(0) 反对(0) 大楚打码人 | 园豆:4313 (老鸟四级) | 2014-11-13 11:54

@惯了算了厌了: ResponseMessage是数组,没有replace方法

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 12:31

@魔女小溪: ResponseMessage不知道这是一个啥数组。。。那我就假设吧,第一个是这个。 ResponseMessage[1]="":"速速点击玩游戏赢小谷家门票啦~<a href=\"http://182.92.186.247/xxxxnpan/huaqiaocheng/home.jsp?vtype=2\">免费旅行</a>"}]";

ResponseMessage[1].replace('\','\\\')

支持(0) 反对(0) 大楚打码人 | 园豆:4313 (老鸟四级) | 2014-11-13 12:45

@惯了算了厌了: 哦,我懂了

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 13:35
0

urlencoding编码后在传。危险字符说的是尖括号

收获园豆:1
吴瑞祥 | 园豆:29449 (高人七级) | 2014-11-13 13:05

对对对,那怎么弄呀?

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 13:32

那后台怎么解码

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 13:37

@魔女小溪: 后台urldecode就可以的

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-11-13 13:41

@吴瑞祥: 后台urldecode,要引入哪个dll呀?

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 13:43
0

建议贴代码吧~

收获园豆:1
幻天芒 | 园豆:37207 (高人七级) | 2014-11-13 13:29

var Content = $(this).find("td:eq(1)").html();

 

其内容就是:

速速点击玩游戏赢小谷家门票啦~<a href=\"http://182.92.186.247/xxxxnpan/huaqiaocheng/home.jsp?vtype=2\">免费旅行</a>

 

这个就是包含html标签的变量

现在我的问题就是,利用json传值,会报错,说不能识别html标签,怎么样处理一下这个a 标签,让它传成功

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 13:48

@魔女小溪: 吧Content 内容进行编码在传值

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2014-11-13 13:50

@魔女小溪: 嗯,对Content进行编码后再传递就可以了。

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2014-11-13 13:55

@幻天芒: 那不是还要在后台解码吗?但是,我用这个urldecode,要引入什么dll嘛?

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 13:58

@conan_lin:  urlencoding($(this).find("td:eq(1)").html());

是这样吗?

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 14:00

@魔女小溪: 对  试试看 

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2014-11-13 14:02

@conan_lin: 那后台用哪个解码呢?

Server.UrlDecode这个嘛?

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 14:04

@魔女小溪: en   

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2014-11-13 14:05

@魔女小溪:不过好像记得后台不用解码 ,具体忘了  试试吧 

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2014-11-13 14:07

@conan_lin: urlencoding($(this).find("td:eq(1)").html());

这个错误,没有urlencoding这个方法

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 14:11

@conan_lin: 报错了,提示说没有这个方法

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 14:11

@魔女小溪: http://www.cnblogs.com/jazzka702/archive/2009/07/09/1519782.html

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2014-11-13 14:13

@conan_lin: 现在编码已经传过去了,就是在后台解码有点问题了

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 14:20

@魔女小溪: 

js解码与编码和服务器端的解码与编码

 

 服务器端:

Server.UrlEncode()方法对Url进行编码

Server.UrlDecode()方法 对url进行解码

 Js方法:

  escape() 函数可对字符串进行编码;

  unescape() 函数可对字符串进行解码;

定义和用法

unescape() 函数可对通过 escape() 编码的字符串进行解码。

定义和用法

escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。

简单例子

js编码:

Var name= escape ($(“#txtname”).value());

var strurl =login.aspx+ "?opt=add&companyname=" + name ;

  $.ajax({

        type: "POST",

        cache: true,

        url: strurl,

        data: "opt=skip",

        success: function (json) {

           //成功方法

        },

        error: function (e) { }

    });

 

解码:服务器端的解码简单:

String name= Server.UrlDecode(Request.QueryString["companyname "].ToString());

 
支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2014-11-13 14:20

@魔女小溪: %E9%80%9F%E9%80%9F%E7%82%B9%E5%87%BB%E7%8E%A9%E6%B8%B8%E6%88%8F%E8%B5%A2%E5%B0%8F%E8%B0%B7%E5%AE%B6%E9%97%A8%E7%A5%A8%E5%95%A6~%3Ca%20href=%22http://182.92.186.247/tianjin_dazhuanpan/huaqiaocheng/home.jsp?vtype=2%22%3E%E5%85%8D%E8%B4%B9%E6%97%85%E8%A1%8C%3C/a%3E

全都是这样的了

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 14:22

@魔女小溪: 编码方式有很多种 不行可以试试其他的编码方式  有的编码对特殊的字符不感冒的

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2014-11-13 14:22

@魔女小溪: ok?

支持(0) 反对(0) 程序员编程日记 | 园豆:6 (初学一级) | 2014-11-13 14:35

@conan_lin: 呜呜呜,是我太粗心了,我滴神那我怎么那么蠢呀!我觉得我真心不像个女的了!老天呀!为啥我那么粗心,现在已经解决了,大哥,谢谢

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 14:38

@魔女小溪: 额~,淡定~ 。再简单点,还可以直接把<>给替换为&lt;&gt; 。后台的话,在HttpUtinity下有HtmlDecode,UrlDecode等方法。

支持(0) 反对(0) 幻天芒 | 园豆:37207 (高人七级) | 2014-11-13 15:20
0

你的a链接有效果吗...

flay | 园豆:238 (菜鸟二级) | 2014-11-13 13:58

现在是我数据传不到后台,直接在界面报错,说什么危险request

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 13:59
0

[{"ButtonType":"0","Content":"速速点击玩游戏赢小谷家门票啦~<a href=\"http://182.92.186.247/xxxxnpan/huaqiaocheng/home.jsp?vtype=2\"& gt;免费旅行</a>"}] 这段json是从后台请求出来的?

收获园豆:1
A股扫地僧 | 园豆:207 (菜鸟二级) | 2014-11-13 14:00

不是,是从界面拼接,要准备传到后台的

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 14:06

@魔女小溪: [{"ButtonType":"0","Content":"速速点击玩游戏赢小谷家门票啦~<a href=\"http://182.92.186.247/xxxxnpan/huaqiaocheng/home.jsp?vtype=2\"& gt;免费旅行</a>"}]  你拼接处href 开头多了一个 \ 然后你拼的时候注意 json格式 [{k:"",v:""}] href="*"改成href=''

支持(0) 反对(0) A股扫地僧 | 园豆:207 (菜鸟二级) | 2014-11-13 14:11

href="*" 改成href='*'  *代表你当前的内容

支持(0) 反对(0) A股扫地僧 | 园豆:207 (菜鸟二级) | 2014-11-13 14:13

@温柔✿殺手: 额,看不懂你说什么

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 14:20

@魔女小溪: [{"ButtonType":"0","Content":"速速点击玩游戏赢小谷家门票啦~<a href=\"http://182.92.186.247/xxxxnpan/huaqiaocheng/home.jsp?vtype=2\">免费旅行</a>"}] 这段json你拼错了,当然报错  [{"ButtonType":"0","Content":" href='*' "}] *表示任意字符。
这样才是正确的

支持(0) 反对(0) A股扫地僧 | 园豆:207 (菜鸟二级) | 2014-11-13 14:24

@温柔✿殺手: 哥,你根本就没看懂我的问题是什么,╮(╯▽╰)╭

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 14:27

@魔女小溪: 好吧, 不过问题还是要一步一步逐步排查,你先把json拼对再查其他的。

支持(0) 反对(0) A股扫地僧 | 园豆:207 (菜鸟二级) | 2014-11-13 14:30

@温柔✿殺手: 呵呵,哥,已经解决了,谢谢你的帮忙,虽然你也没帮上忙,灭哈哈

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 14:39

@魔女小溪: 是什么问题啊,贴你博客上,好让以后我们遇到也能解决

支持(0) 反对(0) A股扫地僧 | 园豆:207 (菜鸟二级) | 2014-11-13 14:41
0

标签报错而已,html标签进行转义即可,或者降低提交的asp.net页面的级别

转义:str.replace(/[<>&"]/g,function(c){return {'<':'&lt;','>':'&gt;','&':'&amp;','"':'&quot;'}[c];});

拾梦小侠ด้้้ | 园豆:713 (小虾三级) | 2014-11-13 14:35

已经解决了,谢谢大哥

支持(0) 反对(0) 今年过年前瘦8斤 | 园豆:94 (初学一级) | 2014-11-13 14:39
0

来晚了,问题应该解决了吧!

对内容进行编码解码能解决这个问题,不错。

我的个人习惯是代码是代码,数据是数据。就对你上面的Content的值来说吧,超链接的地址是数据,完全可以只传地址。

当然 了,对于富文本编辑器的内容我们还是得编码解码。

0.617 | 园豆:410 (菜鸟二级) | 2014-11-13 14:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册