var sUrl = "examtypeaction.phtm?action=setroletypes" + "&roleID="+ roleID +"&examTypeIDs=" + examTypeTree.getCheckedIDs();
var success = function(o) {
var s = o.responseText.toString();
var jsonObject = s.parseJSON(o.responseText);
var result = eval("jsonObject.result");
if (result.resultValue >0) {
alert("配置权限成功!");
}else{
alert('系统错误,请与系统管理员联系');
}
};
var callback = {
success : success
};
*** var req = $C.asyncRequest('POST', sUrl, callback);
由于examTypeIDs的长度会比较长,再加上url
的其它参数,整个url
提交时将近3400个字符串
这么长的字符串是不能直接提交的,超过了浏览器的限制(一说是最大长度是2048)
解决的办法是将url与参数分开,于是修改代码:
var sUrl = "examtypeaction.phtm?action=setroletypes" + "&roleID="+ roleID;
var xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
xmlHttpReq.open("POST", sUrl, false);
*** xmlHttpReq.setRequestHeader("Content-Type" , "application/x-www-form-urlencoded" );
*** xmlHttpReq.send("examTypeIDs=" + examTypeTree.getCheckedIDs());
var jsonObject = (xmlHttpReq.responseText.toString()).parseJSON(xmlHttpReq.responseText);
if(jsonObject) {
var result = eval("jsonObject.result");
if (result.resultValue >0) {
alert("配置权限成功!");
}else{
alert('系统错误,请与系统管理员联系');
}
}
修改之后问题成功解决,注意带****号行的区别
当我们将参数放在url中提交的时候,如果内容可能比较长的情况下
应当采用后面代码中的方法,避免出错
分享到:
相关推荐
XMLHttpRequest中文参考手册
AJAX技术使用XMLHttpRequest对象传递参数的中文乱码问题
XMLHttpRequest中文参考
XMLHttpRequest中文参考手册.rar
在非IE的浏览器中,需要用 new XmlHttpreQueSt()来创建对象,如下: var xmlHttpReq = new XMLHttpRequest(); xmlHttpReq.open("GET", "http://localhost/books.xml", false); xmlHttpReq.send(); alert(xmlHttpReq...
Ajax中的XMLHttpRequest中文参考
填《GWT揭秘》中8.1节中--GWT中的XMLHTTPRequest:请求动态数据的代码,
XMLHttpRequest中文参考手册(15)