为什么如果我在“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
答案 0 :(得分:2)
您必须对html进行编码或更改配置以允许该类型的请求。 Asp.net阻止html在请求中被接受作为安全措施。
<ConfigurationPropertyAttribute("validateRequest", DefaultValue := True)> _
答案 1 :(得分:0)
$ .ajax方法认为它通过智能猜测发送HTML数据。所以如果你添加
dataType:'json'
到ajax调用的参数列表,它应该解决你的问题。