XMLHttpRequest Post上send()数据参数的最大长度

XMLHttpRequest对于主要的浏览器实现,可以在的send方法中使用的字符串数据的长度是否有记载的最大值?

XMLHttpRequest当数据超过大约3k时,我在FireFox 3中遇到了JavaScript

Post失败的问题。我以为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;

}

}

}

回答:

我相信最大长度不仅取决于浏览器,还取决于Web服务器。例如,Apache

HTTP服务器具有LimitRequestBody指令,该指令允许从0字节到2GB的数据。

以上是 XMLHttpRequest Post上send()数据参数的最大长度 的全部内容, 来源链接: utcz.com/qa/427201.html

回到顶部