用ajax把table中的内容传到后台,但是试了几种方法ajax不会调用后台,才发现是请求参数值过长导致。
?
下面是解决方案:
?
修改使用的XMLHTTP的请求为POST,并且把参数和URL分离出来提交
?
?
function sAjaxRequest(){
?var? record = save_record();
?xmlRequest = getXMLHttpRequestObject();
?alert("xmlRequest"+xmlRequest);
?if(xmlRequest==null){
??alert("您的浏览器不支持AJAX!");
??return false;
?}
?var url = "sendoasys.do";
?var? para = "record="+encodeURIComponent(record);????? ----- encodeURIComponent 函数的应用
?xmlRequest.onreadystatechange = dataChanged;
?xmlRequest.open("POST",url,false);???? -----提交方式未post
?xmlRequest.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=UTF-8');
?
xmlRequest.send(para);? // 发送请求???? -----请求参数单独提交
}
?
?
?
注: encodeURIComponent 返回一个包含了 charstring 内容的新的 String 对象(Unicode 格式), 所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。 字符的值大于 255 的用 %uxxxx 格式存储。参见 JavaScript 的 encodeURIComponent() 方法.
?