当字符串包含 HTML 标记时,JSON 解析失败

JSON failing to parse when strings contain HTML markup

本文关键字:JSON 失败 字符串 包含 HTML      更新时间:2023-09-26

为什么当将html标签添加到json时,这个ajax会失败,如果<br />不存在,那么就可以工作了。我能想到的唯一解决方法是编码文本。

你知道为什么或/和任何其他建议。

谢谢

 $.ajax({
            type: "POST",
            url: "/url",
            //data: { "myText" : '[{ "a": "test1", "b": "test2"}]' },//works
            data: { "myText": '[{ "a": "<br />dfgdfgdfgdfgdgd", "b": "test2"}]' },//causes error
            dataType: 'json',
            success: function (data) {
                        alert("pass");
            },
            error: function () {
                        alert("error");
            }
        });

尝试使用 JSON.stringify 方法:

data: { "myText": JSON.stringify([{ "a": "<br />dfgdfgdfgdfgdgd", "b": "test2"}]) }

或者,如果您不想将myText作为 JSON 字符串发送,请删除单引号:

data: { "myText": [{ "a": "<br />dfgdfgdfgdfgdgd", "b": "test2"}] }

现在,当然,如果您在服务器端使用某些技术(例如 ASP.NET),禁止请求中的字符(例如< >),则必须修复服务器端脚本,以便它接受这些字符。