发布json与它休息

时间:2012-08-10 19:52:24

标签: c# javascript jquery vb.net

为什么如果我在“name”属性中添加<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

2 个答案:

答案 0 :(得分:2)

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

MSDN

<ConfigurationPropertyAttribute("validateRequest", DefaultValue := True)> _

答案 1 :(得分:0)

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

dataType:'json' 

到ajax调用的参数列表,它应该解决你的问题。