对于主要的浏览器实现,您可以在XMLHttpRequest的send方法中使用的字符串数据的长度是否有文档记录?
当数据超过3k时,我遇到了一个JavaScript XMLHttpRequest Post在FireFox 3中失败的问题.我假设Post的行为与传统的Form Post相同.
W3C文档提到send方法的数据参数是DOMString,但我不确定主要的浏览器是如何实现的.
这是我的JavaScript的简化版本,如果bigText超过3k就失败了,否则它可以工作......
var xhReq = createXMLHttpRequest(); function createXMLHttpRequest() { try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) {} try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} try { return new XMLHttpRequest(); } catch(e) {} alert("XMLHttpRequest not supported"); return null; } function mySubmit(id, bigText) { var url = "SubmitPost.cfm"; var params = "id=" + id + "&bigtext=" + encodeURI(bigText); xhReq.open("POST", url, true); //Send the header information along with the request xhReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhReq.setRequestHeader("Content-length", params.length); xhReq.setRequestHeader("Connection", "close"); xhReq.onreadystatechange = onPostSubmit; xhReq.send(params); } function onPostSubmit() { if (xhReq.readyState==4 || xhReq.readyState=="complete") { if (xhReq.status != 200) { alert('BadStatus'); return; } } }
Zack The Hum.. 5
我相信最大长度不仅取决于浏览器,还取决于Web服务器.例如,Apache HTTP服务器具有LimitRequestBody指令,该指令允许从0字节到2GB的数据.
我相信最大长度不仅取决于浏览器,还取决于Web服务器.例如,Apache HTTP服务器具有LimitRequestBody指令,该指令允许从0字节到2GB的数据.