当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《XMLHttpRequestPost上send()数据参数的最大长度》经验,为你挑选了1个好方法。

对于主要的浏览器实现,您可以在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的数据.



1> Zack The Hum..:

我相信最大长度不仅取决于浏览器,还取决于Web服务器.例如,Apache HTTP服务器具有LimitRequestBody指令,该指令允许从0字节到2GB的数据.

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有