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

Try this:

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 回答
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 文档

data 选项可以包含 key1=value1&key2=value2 形式的查询字符串,或 {key1: 'value1', key2: 'value2'} 形式的映射。

因此,在我们的特定示例中,我们使用了“映射”形式,即 JavaScript 对象。

于 2012-08-10T22:48:20.027 回答