1

为什么 JSON 不适用于 html 文本 (var text_html = ' <p></p><t></t>'; ) 但这将是正确的 (var text_html = 'example';)

不工作

var text_html = JSON.parse('<p></p><t></t>'); 

问题:

    function Save() {
        var text_html = '<p></p><t></t>'; 
        $.ajax({
            url: '@Url.Action("DodajTematSave", "StronaGlowna")',
            dataType: "json",
            data: {
                My_Text: text_html
            },
            type: "POST",
            async: false,
            error: function () {
            },
            success: function (data) {
                if (data.Success) {
                    alert('success');
                }

            }
        });
    }
</script>

public JsonResult DodajTematSave(string My_Text)
        {

            return Json(new { Success = true});
        }

这也行不通

var dom_string = '<div>xxx<div>yyy</div></div>';
    var text_html = dom_string.innerText();

这也行不通

<script type="text/javascript">

    function Save() {
        var Temat_controll = $('#Temat').val();

        var Streszczenie_controll = $.parseJSON('<p></p><t></t>'); 

        var PelnyOpis_controll = $('#PelnyOpis').text();

         $.ajaxSetup({
             contentType: "application/json; charset=utf-8",
             dataType: "json"
         });

        $.ajax({
            url: '@Url.Action("DodajTematSave", "StronaGlowna")',
            dataType: "json",
            data: {
                Temat: Temat_controll,
                Streszczenie: Streszczenie_controll,
                PelnyOpis: PelnyOpis_controll
            },
            type: "POST",
            async: false,
            error: function () {
            },
            success: function (data) {
                if (data.Success) {
                    alert('success');
                }

            }
        });
    }

</script>
4

3 回答 3

2

尝试这个:

var Streszczenie_controll = $.parseJSON('<p></p><t></t>');

并使用 ajaxSetup 来指示 JQuery 如何处理数据类型

        $.ajaxSetup({
            contentType: "application/json; charset=utf-8",
            dataType: "json"
        });
于 2013-03-24T15:56:43.350 回答
2

对于对此有问题的人,我可以展示另一种解决此问题的方法,但非常难看,请单击此处

于 2013-03-24T19:15:01.540 回答
2

因为这些是 JSON 中的转义字符。如果您希望它通过 JSON 传递,则必须以某种方式解析 html 以使其对 JSON 友好。

于 2013-03-24T15:36:39.470 回答