在jQuery中,我在JSON结果中返回HTML,我有什么必须逃避?

mrb*_*lah 7 jquery json

在我的Ajax请求中(使用jQuery)我返回一个JSON响应.

所以json.Html会有一个我希望在div中追加的HTML字符串.

在服务器端,我是否必须逃避HTML?

在我的MVC行动中,我回来了:

return Content("{html: ???????}, "application/json");
Run Code Online (Sandbox Code Playgroud)

cob*_*bal 14

另一种解决方案是简单地返回HTML并使用jQuery load():

$('#someDiv').load('servershtml.html');
Run Code Online (Sandbox Code Playgroud)

要按照你的方式去做,你只需要转义双引号和反斜杠.

的规格是很可读和短.


sin*_*yma 7

在转义要放入JSON字符串的内容时,您只需要在引号和斜杠(ala \"和\\)中添加斜杠.HTML字符在JSON字符串中没有任何意义,所以它们很好:)

当然,请确保您的字符串本身格式正确(X)HTML,以便在插入div时不会爆炸.


Ale*_*eta 6

使用HTML创建JSON时,您必须转义双引号字符,以及CLRF字符,它将返回HTML.

我使用从AJAX请求调用的oracle过程中的pl/sql.如果您愿意,我可以发布实施.

您应该在http://www.jsonlint.com/上测试您的输出,看它是否有效.

所以

{
    "id": "1",
    "html_value": "<a href=\"http://www.google.com\">test link returnin html code</a>"
}
Run Code Online (Sandbox Code Playgroud)

是不同的

{
    "id": "1",
    "html_value": "<a href=\"http://www.google.com\">test link returnin
 html code</a>"
}
Run Code Online (Sandbox Code Playgroud)

因为CLRF字符.你应该用服务器端替换它&nbsp; 或<br/>.

希望这有帮助,Alex


Jea*_*ean 5

我将发布我的PHP经验.我希望它能有所帮助.

通常,使用json_encode()函数对数据进行编码,例如:

json_encode(array('data1' => 'String data with text',
              'data2' => '<a href="www.stackoverflow.com">The Site</a>'));
Run Code Online (Sandbox Code Playgroud)

由于json_encode()只能使用UTF-8字符串工作,我建议通过函数编码UTF-8中的每个字符串utf8_encode(),即

json_encode(array(utf8_encode('data1') => utf8_encode('String data with text'),
              utf8_encode('data2') => utf8_encode('<a href="www.stackoverflow.com">The Site</a>')));
Run Code Online (Sandbox Code Playgroud)

此外,如果您使用特殊字符(如意大利语中的è和à),我建议解码返回的json UTF8编码HTML.如果您需要在HTML页面中使用它(例如,作为AJAX调用的结果),这将特别有用.要通过Javascript解码,请使用:

decodeURIComponent(escape(html));
Run Code Online (Sandbox Code Playgroud)

html返回的编码HTML代码在哪里.

问候.