1

为什么如果我将 a 添加<br />到“名称”属性中,ajax 不会发布到后面的代码中,但如果我不添加它,那么它可以正常工作?

下面的 JSON 数组是这样自动生成的:

//        var tableOBJ = [];
//
//
//        $("table tr").each(function () {
//
//            var r = new rowOBJ(

//                $(this).find('td').eq(0).val(),
//                $(this).find('td').eq(1).text()
//                                   
//                                    );
//
//            tableOBJ.push(r);
//
//        });



var myJS = 
[
{"name":"d <br />","surname":"cxzc"},
{"name":"d ","surname":"cxzc"},
{"name":"d ","surname":"cxzc"},
{"name":"d ","surname":"cxzc"},
{"name":"d ","surname":"cxzc"}
];


 var gg = { "myText": JSON.stringify(myJS) };

 //var gg = JSON.stringify({ "myText": myJS }); //this does not work either, code-behind does not see it at all






        $.ajax({
            type: "POST",
            url: "send.aspx",
            data: gg,
            success: function (data) {
                //pass

            },
            error: function () {
                //fail

            }
        });

    });
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

    Dim s As String = HttpContext.Current.Request.Form("myText")

End Sub
4

2 回答 2

2

您必须对 html 进行编码或更改配置以允许该类型的请求。作为安全措施,Asp.net 正在阻止 html 在请求中被接受。

MSDN

<ConfigurationPropertyAttribute("validateRequest", DefaultValue := True)> _
于 2012-08-10T19:55:32.693 回答
0

$.ajax 方法认为它通过智能猜测来发送 HTML 数据。所以如果你添加

dataType:'json' 

到 ajax 调用的参数列表中,它应该可以解决您的问题。

于 2012-08-10T19:56:24.510 回答