当前位置: 首页 > 面试题库 >

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

酆景辉
2023-03-14
问题内容

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的数据。



 类似资料:
  • 问题内容: 我正在使用子进程模块中的Popen函数来执行命令行工具: 我正在使用的工具将获取一个文件列表,然后处理该文件。在某些情况下,此文件列表可能会很长。有没有一种方法可以找到args参数可以达到的最大长度?将大量文件传递给该工具后,出现以下错误: 有找到这种最大长度的一般方法吗?我在msdn上找到了以下文章:命令提示符(Cmd。exe)命令行字符串限制,但我不想对值进行硬编码。我宁愿在运行时

  • 问题内容: 我最近一直在复制和移动大量文件(约40万个)。我知道在Bash命令行上可以扩展的参数数量有限制,因此我一直在使用xargs来限制产生的数量。 出于好奇,我想知道我可以使用的最大参数数目是多少,我发现这篇文章说它是依赖于系统的,我可以运行以下命令来找出: 令我惊讶的是,我回来的答案是: 刚刚超过 260万 。正如我所说,我要处理的文件数量要少得多,大约为40万。我绝对需要使用移动和复制这

  • 问题内容: 我正在使用REST访问PHP服务器:所有数据都作为URL参数在GET请求中传递。参数之一以query_string到达服务器,但不在_GET全局中。但是,缩短参数(截止值似乎是512个字符左右)可以让它通过。 假设我已正确诊断问题,是否可以更改此最大大小?我在文档中没有找到任何解释,甚至没有提及此限制。这是在Debian挤压/ Apache 2.2.16 / PHP 5.3.3上。 问

  • 问题内容: 我正在从Linux C Shell调用SQL * Plus: 如果我将字符串传递为,那么该字符串可以持续多长时间? 它受操作系统支配吗?在这种情况下: 更新: 实证测试得出以下结果: 5200个字符的命令行参数给出了错误:“单词太长”。 然后,有1300个字符产生了SQL * Plus错误,“字符串开头“(000796384 …”)太长。最大大小为239个字符。” 我一度跌破239个字

  • 综合面试全程10分钟,估计被KPI了 1.自我介绍 2.谈谈实习跟学校生活有啥不同? 3.实习学到了什么? 4.性格最大优点?缺点? 5.怎么看待你研究的论文/课题? 6.你对待生活的态度? 反问 工作地点? 渝北江北 工作规模 不知道,问技术面。 #长安汽车#

  • 问题内容: 我试图使用s或函数读取稍大的数据集,但我一直遇到s。数据框的最大大小是多少?我的理解是,只要数据适合内存,数据帧就应该可以,这对我来说不是问题。还有什么可能导致内存错误? 就上下文而言,我试图在《2007年消费者金融调查》中阅读ASCII格式(使用)和Stata格式(使用)。该文件的dta大小约为200MB,而ASCII的大小约为1.2GB,在Stata中打开该文件将告诉我,对于22,