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

标签 javascript ajax xmlhttprequest

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

当数据超过大约 3k 时,我遇到了 JavaScript XMLHttpRequest 发布在 FireFox 3 中失败的问题。我假设 Post 的行为与传统的 Form Post 相同。

W3C 文档提到发送方法的数据参数是一个 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;
        }
    } 
}

最佳答案

我相信最大长度不仅取决于浏览器,还取决于网络服务器。例如,Apache HTTP 服务器有一个 LimitRequestBody directive它允许从 0 字节到 2GB 的数据。

关于javascript - XMLHttpRequest Post 上 send() 数据参数的最大长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/124742/

相关文章:

javascript - 我在放大分形 (webgl) 时遇到问题

php - 从 jQuery Ajax 将值传递给 PHP

javascript - 如何用javascript检测err_name_not_resolved?

javascript - 如何删除没有特定父元素的元素?

javascript - 迭代 URL 并根据需要添加/替换字符串

javascript - 发布前的 ajax 条件变量

jquery - 如何配置 ajax select2 以使用条形码扫描仪

javascript - 同步加载外部 JavaScript

spring-boot - Spring 启动 : Do not send HSTS header

javascript - 处理 react.js 中的主干模型/集合更改