【发布时间】:2014-04-08 02:44:10
【问题描述】:
我在APP A中有如下富文本:
一个漂亮的篮球
- 因为我这么说
- 因为我妈妈这么说
- 因为我的狗这么说
在 index.html.erb 中,此富文本可通过 product.body_html 访问,我将其加载到名为 myProduct 的 Javascript 对象中:
var myProduct= new Object();
myProduct.desc ='<%= JSON.generate(raw(product.body_html), quirks_mode: true) %>';
然后我使用 Javascript 通过 POST 将此对象发送到我在 APP B 中的 API:
var url = appBURL + "/myapi/method";
$.ajax({
type: "POST",
url: url,
data: JSON.stringify(myProduct),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data){
// data.desc should contain the same rich text
$(".myDiv").html(data.desc);
}
});
我在应用 A 中得到回复 data.desc,应该包含相同的富文本。但是当我在<div> 中显示data.desc 时,我看到屏幕上打印的是这个
"<p>A nice basketball</p> <ul> <li>because I say so</li> <li>because my mother says so</li> <li>because my dog says so</li> </ul>"
而我实际上在<div> 中插入的内容(即data.desc 的内容)是这样的
"<p>A nice basketball</p>
<ul>
<li>because I say so</li>
<li>because my mother says so</li>
<li>kjh</li>
</ul>"
APP A 中的客户端正在添加这些引号。为什么?
如果我在APP A中添加这样的描述:
myProduct.desc ='<%= raw(product.body_html) %>';
然后它适用于普通文本(并且它不添加引号),但是一旦我有富文本,它就会在运行 javascript 时产生语法错误。
【问题讨论】:
标签: javascript jquery ruby-on-rails ruby json