在jQuery中,我返回JSON结果中的HTML,我必须转义什么?
在我的请求(使用)中,我返回一个响应 因此,json.Html将在div中添加一个Html字符串 在服务器端,我必须转义HTML吗 在我的MVC行动中,我返回:在jQuery中,我返回JSON结果中的HTML,我必须转义什么?,jquery,json,Jquery,Json,在我的请求(使用)中,我返回一个响应 因此,json.Html将在div中添加一个Html字符串 在服务器端,我必须转义HTML吗 在我的MVC行动中,我返回: return Content("{html: ???????}, "application/json"); 当转义要放入JSON字符串的内容时,只需在引号和斜杠(ala\”和\)中添加斜杠。HTML字符在JSON字符串中没有任何意义,所以它们很好:) 当然,请确保字符串本身是格式良好的(X)HTML,以便在插入div时不会爆炸。另一种
return Content("{html: ???????}, "application/json");
当转义要放入JSON字符串的内容时,只需在引号和斜杠(ala\”和\)中添加斜杠。HTML字符在JSON字符串中没有任何意义,所以它们很好:)
当然,请确保字符串本身是格式良好的(X)HTML,以便在插入div时不会爆炸。另一种解决方案是简单地返回HTML并使用jQuery的
load()
:
不过,要按自己的方式来做,只需避开双引号和反斜杠
非常可读且简短。如果将
数据类型设置为'json'
,则传递给完成事件的对象将是该javascript对象。基本上,jQuery将把响应内容(假定其格式正确的json)转换为javascript对象。例如
$.ajax({
dataType: 'json',
complete: function(myJsonObject) {
alert(myJsonObject.someMember);
}
}); //$.ajax({
如果您想知道如何从.net生成格式正确的JSON,那么我鼓励您进行探索,因为它使生成JSON变得非常简单。使用HTML创建JSON时,您必须转义,然后转义双引号字符,以及CLRF字符,它将返回HTML
我在oracle中使用了从AJAX请求调用的pl/sql过程。如果您愿意,我可以发布实现
您应该在测试您的输出,看看它是否有效
所以
{
“id”:“1”,
“html_值”:”
}
不同于
{
"id": "1",
"html_value": "<a href=\"http://www.google.com\">test link returnin
html code</a>"
}
{
“id”:“1”,
“html_值”:”
}
由于CLRF字符,您应该将服务器端的字符替换为
;或
希望这有帮助,
Alex如果您使用的是PHP json_encode,那么它会为您带来以下好处:
$htmlSnippet = '<a href="#"></foo>';
return json_encode(array("html" => $htmlSnippet));
$htmlSnippet=”我将发布我使用PHP的经验。我希望它能有所帮助
通常,使用json_encode()
函数对数据进行编码,例如:
json_encode(array('data1' => 'String data with text',
'data2' => '<a href="www.stackoverflow.com">The Site</a>'));
此外,如果您使用特殊字符(如意大利语中的è和è),我建议解码返回的json UTF8编码的HTML。如果您需要在HTML页面中使用它(例如,作为AJAX调用的结果),这尤其有用。要通过Javascript解码,请使用:
其中html
是返回的编码html代码
问候。a\b\c怎么样,都好吗?
$htmlSnippet = '<a href="#"></foo>';
return json_encode(array("html" => $htmlSnippet));
json_encode(array('data1' => 'String data with text',
'data2' => '<a href="www.stackoverflow.com">The Site</a>'));
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>')));
decodeURIComponent(escape(html));