jquery ajax data参数 太长

function save() {
var strs = $("html").html();
$.ajax({
type: "post",
url: "Show.aspx/Save",
contentType: "application/json;",
data: "{'str':'" + strs + "'}",
error: function(err){
alert("出错!");
},
success: function (msg) {
if (msg.d == "true") {
alert("成功!");
}
}
});
}
如果页面数据量不大,没问题后台可以接收到,数据量大了,就出错了。去了好几个论坛都没找到想要的解决方案或者是相关解释。网上也没有找到相关的有用资料。可行,请给出解决方案,不行,请给出相关解释。谢谢!!!
最新回答
改天忘记你

2024-06-07 08:44:12

data: "{'str':'" + strs + "'}",
html 可能会有符号问题
试试data:{"str":strs},
最后检测下后台的错误信息,有没有可能是因为有不安全的内容(html内容会这样,可以编码解决)
不太可能是长度问题
可以试试编码data:{"str":escape(strs)},
后台用Server.UrlDecode解码
追问
data:{"str":escape(strs)},
试了,没用后台没反应。ajax显示出错status=500
validateRequest 属性设置为 false 来禁用请求验证也设置了。
现在问题是小页面可以,大数据量根本不会走后台代码
追答
500是你的程序错误了啊
如果是4.0的网站validateRequest=false也不好用,需要在
web.config里面加

如果你的数据确实很长...
可以加数字自己看着办
夏了夏天

2024-06-07 10:35:47

materielno的值不能直接这样获取
后台改为:string
str=requst["materielno"].tostring();
然后把str作为参数传到函数findmateriel中,即为:public
void
findmateriel(string
str){}
梦明

2024-06-07 16:09:33

服务器端如果是asp.net的话,在web.config中加入:
<jsonSerialization maxJsonLength="1024000" />
试试