在javascript中编码/解码html标签

时间:2015-09-14 08:27:10

标签: javascript html json ajax nicedit

我有一个用nicEdit插件美化的textarea。

我需要通过ajax帖子将结果发送到我的php服务器。我应该怎么做才能逃脱html标签并在我的服务器中接收它们?

另外,我需要通过另一个ajax调用在另一个网页中显示它们。为了在从php接收后解码它们,我该怎么办?

这是我试过的一个json:

{'title':'srefzgseg','text':'<a href="link_to_page">s</a>drhgrdshgrdghrdgdgrdg<img src="http://www.joomlaworks.net/images/demos/galleries/abstract/7.jpg" alt="dgfvsegfseg" align="none">'}

我的职能:

function saveData(){
    var title = $("#titulo").val();
    var text = new nicEditors.findEditor('new_area').getContent();
    var jsonNew = "{'title':'"+title+"','text':'"+text+"'}";
    console.log(jsonNew);
    $.ajax({
        type: "POST",
        url: "./server/saveNewData.php",
        contentType: "application/json; charset=utf-8",
        data: jsonNew,
        dataType: "json",
        success: function(response) {
        },
        error:function(xhr, status, message) {console.log(message); alert("Ha ocurrido un error al guardar los datos");}
    });
}

1 个答案:

答案 0 :(得分:3)

您的JSON无效。 JSON中的字符串应该有双引号。

如果你在字符串中也需要双引号,你需要用反斜杠转义它们。

但是,不是自己编写解决方案,而是让JavaScript处理JSON序列化,并且您不会遇到此问题:

var o = {};
o.title = $("#titulo").val();
o.text = new nicEditors.findEditor('new_area').getContent();
var jsonNew = JSON.stringify(o);