1

stringify を使用して文字列に html を投稿しようとすると、この ajax エラーが発生するのはなぜですか。

stringify が文字を自動的にエスケープするようです。

私は逃げなければなりませんか?ありがとう

var s;

//s = "my test test"; //if I post this it works

s = "my test test<br />"; //if I post this it break when I add the html

        var a = { "myText": JSON.stringify(s) };

        $.ajax({
            type: "POST",
            url: "test.aspx",
            data: a,
            success: function (data) {

                  //pass

            },
            error: function () {
            alert("error");

            }
        });

次に、ページの読み込み時に、投稿されたデータを読み取ろうとしています

HttpContext.Current.Request.Form("myText")
4

2 に答える 2

0

JSON.stringify()を呼び出す必要はありません。

JSON.stringifyは、オブジェクトをJSON文字列にシリアル化することを目的としていますが、文字列を渡すことになり、間違っています。

$ .ajax()呼び出しでオブジェクトを渡すだけです:

var s = "my test test<br />";
.ajax({
    type: "POST",
    url: "test.aspx",
    data: {
        myText: s
    },
    success: function (data) {
          //pass
    },
    error: function () {
        alert("error");
    }
});

また、jQueryのドキュメント

データオプションには、key1 = value1&key2 = value2の形式のクエリ文字列、または{key1:'value1'、key2:'value2'}の形式のマップのいずれかを含めることができます。

したがって、特定の例では、フォームの「マップ」、つまりJavaScriptオブジェクトを使用しました。

于 2012-08-10T22:48:20.027 に答える
0

これを試して:

var s = "my test test<br />",
a = { "myText": s };
a = JSON.stringify(a)
$.ajax({
    type: "POST",
    url: "test.aspx",
    data: a,
    success: function (data) {
          //pass
    },
    error: function () {
    alert("error");

    }
});
于 2012-08-10T19:01:55.820 に答える