我将一些数据通过Json传递给Webservice。 我的问题是我传递了html(来自tinyMCE输入),因此var的内容使用引号,这给了我一些问题。 我正在传递这样的值:
data: '{ id: "' + news_id + '", title: "' + news_title + '", body: "' + news_body + '" }',
在javascript中是否有espace引号,所以我可以在那个news_body var中发送html?
由于
答案 0 :(得分:13)
使用replace()方法:
function esc_quot(text)
{
return text.replace("\"", "\\\"");
}
data: '{ id: "' + esc_quot(news_id) + '", title: "' + esc_quot(news_title) + '", body: "' + esc_quot(news_body) + '" }',
答案 1 :(得分:12)
使用Javascript JSON编码器(例如由MooTools' JSON utility或JSON.js提供),而不是使用一次性代码,它将为您处理编码。大浏览器(IE8,FF 3.5 +,Opera 10.5 +,Safari和Chrome)通过JSON对象支持JSON编码和解码natively。编写良好的JSON库在存在时将依赖于本机JSON功能,并在不存在时提供实现。 YUI JSON library就是这样做的。
data: JSON.stringify({
id: news_id,
title: news_title,
body: news_body
}),
答案 2 :(得分:2)
使用以下功能:
function addslashes (str) {
return (str+'').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
}
例如:
data: '{ id: "' + addslashes(news_id) + '", title: "' + addslashes(news_title) + '", body: "' + addslashes(news_body) + '" }',
找到很多这样的功能
答案 3 :(得分:-1)