在我的Ajax请求中(使用jQuery)我返回一个JSON响应.
所以json.Html会有一个我希望在div中追加的HTML字符串.
在服务器端,我是否必须逃避HTML?
在我的MVC行动中,我回来了:
return Content("{html: ???????}, "application/json");
cobbal.. 14
另一种解决方案是简单地返回HTML并使用jQuery load()
:
$('#someDiv').load('servershtml.html');
要按照你的方式去做,你只需要转义双引号和反斜杠.
的规格是很可读和短.
另一种解决方案是简单地返回HTML并使用jQuery load()
:
$('#someDiv').load('servershtml.html');
要按照你的方式去做,你只需要转义双引号和反斜杠.
的规格是很可读和短.
在转义要放入JSON字符串的内容时,您只需要在引号和斜杠(ala \"和\\)中添加斜杠.HTML字符在JSON字符串中没有任何意义,所以它们很好:)
当然,请确保您的字符串本身格式正确(X)HTML,以便在插入div时不会爆炸.
使用HTML创建JSON时,您必须转义双引号字符,以及CLRF字符,它将返回HTML.
我使用从AJAX请求调用的oracle过程中的pl/sql.如果您愿意,我可以发布实施.
您应该在http://www.jsonlint.com/上测试您的输出,看它是否有效.
所以
{ "id": "1", "html_value": "test link returnin html code" }
是不同的
{ "id": "1", "html_value": "test link returnin html code" }
因为CLRF字符.你应该用服务器端替换它 
; 或
.
希望这有帮助,Alex
我将发布我的PHP经验.我希望它能有所帮助.
通常,使用json_encode()
函数对数据进行编码,例如:
json_encode(array('data1' => 'String data with text', 'data2' => 'The Site'));
由于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('The Site')));
此外,如果您使用特殊字符(如意大利语中的è和à),我建议解码返回的json UTF8编码HTML.如果您需要在HTML页面中使用它(例如,作为AJAX调用的结果),这将特别有用.要通过Javascript解码,请使用:
decodeURIComponent(escape(html));
html
返回的编码HTML代码在哪里.
问候.