将大型JavaScript对象传递到C#后端而不使用JSON/字符串(使用IE11)
这是我作为一名新雇用的初级开发人员提出的第一个堆栈溢出问题。我已经做了很多搜索,但似乎找不到答案,如果我错过了,我道歉 我有两个大型JavaScript对象,希望从web应用程序的前端传递到C#后端。对于我正在开发的应用程序,我们一直在使用将大型JavaScript对象传递到C#后端而不使用JSON/字符串(使用IE11),javascript,c#,json,string,Javascript,C#,Json,String,这是我作为一名新雇用的初级开发人员提出的第一个堆栈溢出问题。我已经做了很多搜索,但似乎找不到答案,如果我错过了,我道歉 我有两个大型JavaScript对象,希望从web应用程序的前端传递到C#后端。对于我正在开发的应用程序,我们一直在使用JSON.stringify(object)来准备要传递到后端的数据。当它到达后端时,我们执行applymydatadata=JsonConvert.DeserializeObject(json)-正常情况下没有问题 编辑:以下是我们发布的方式: $.aja
JSON.stringify(object)
来准备要传递到后端的数据。当它到达后端时,我们执行applymydatadata=JsonConvert.DeserializeObject(json)代码>-正常情况下没有问题
编辑:以下是我们发布的方式:
$.ajax({
键入:“POST”,
url:“/Controller/MyMethod”,
数据:{
json:json.stringify(myObject)
},
成功:功能(响应){
if(response.success){
//耶
}else if(response.success==false){
//不
}否则{
警惕(“发生了意想不到的事情”);
}
}
});代码>你可以用小提琴演奏。
下面是我很快看到的:
IE11在实际发送数据方面没有问题
根据字符串的实际长度,ASP.Net在默认情况下有一个限制。谢谢@robjam,这对我帮助很大。我正在使用Raygun进行错误报告,并为我提供POST表单值。表单值在他们的控制台中被截断,因此我认为(可能是错误的)字符串在实际发送到后端之前在浏览器中被截断
但看起来IE11的字符串化很好,也许RayGun根本没有在他们的错误日志控制台中打印出所有JSON,这让我感到不舒服
将进一步调查,谢谢。为什么要将值作为查询字符串而不是POST数据传递回服务器?是的,根据HTTP的本质,您正在向服务器发送字符串。此外,IE11没有1024个字符的字符串长度限制。不要错误地认为console.log()
总是说实话;尝试console.log(evenBiggerString.length)代码>只是为了好玩。@Pointy,我进一步看了看,我的JSON字符串看起来确实超过1024,所以这让我很迷惑。将深入控制器并尝试查找错误。谢谢你的回复。
$.ajax({
type: 'POST',
url: '/echo/json',
data: {
"stuff": myArray
}
}).done(function(res){
console.log("success");
}).fail(function(res){
console.log("test failed")
});