在我的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)
要按照你的方式去做,你只需要转义双引号和反斜杠.
的规格是很可读和短.
在转义要放入JSON字符串的内容时,您只需要在引号和斜杠(ala \"和\\)中添加斜杠.HTML字符在JSON字符串中没有任何意义,所以它们很好:)
当然,请确保您的字符串本身格式正确(X)HTML,以便在插入div时不会爆炸.
使用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字符.你应该用服务器端替换它 或<br/>.
希望这有帮助,Alex
我将发布我的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代码在哪里.
问候.
| 归档时间: |
|
| 查看次数: |
51654 次 |
| 最近记录: |