Max length of send() data param on XMLHttpRequest Post(XMLHttpRequest Post 上的 send() 数据参数的最大长度)
问题描述
对于主要浏览器实现,您可以在 XMLHttpRequest
的 send 方法中使用的字符串数据长度是否有文档记录?
Is there a documented max to the length of the string data you can use in the send method of an XMLHttpRequest
for the major browser implementations?
当数据超过大约 3k 时,我遇到了 JavaScript XMLHttpRequest
Post 在 FireFox 3 中失败的问题.我假设 Post 的行为与传统的 Form Post 相同.
I am running into an issue with a JavaScript XMLHttpRequest
Post failing in FireFox 3 when the data is over approx 3k. I was assuming the Post would behave the same as a conventional Form Post.
W3C 文档提到 send 方法的数据参数是 DOMString,但我不确定主流浏览器是如何实现的.
The W3C docs mention the data param of the send method is a DOMString but I am not sure how the major browsers implement that.
这是我的 JavaScript 的简化版本,如果 bigText 超过 3k 则失败,否则它可以工作...
Here is a simplified version of my JavaScript, if bigText is over about 3k it fails, otherwise it works...
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 指令,它允许从 0 字节到 2GB 的数据.
I believe the maximum length depends not only on the browser, but also on the web server. For example, the Apache HTTP server has a LimitRequestBody directive which allows anywhere from 0 bytes to 2GB worth of data.
这篇关于XMLHttpRequest Post 上的 send() 数据参数的最大长度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:XMLHttpRequest Post 上的 send() 数据参数的最大长度
基础教程推荐
- 我可以在浏览器中与Babel一起使用ES模块,而不捆绑我的代码吗? 2022-01-01
- html表格如何通过更改悬停边框来突出显示列? 2022-01-01
- Vue 3 – <过渡>渲染不能动画的非元素根节点 2022-01-01
- 如何使用JIT在顺风css中使用布局变体? 2022-01-01
- Electron 将 Node.js 和 Chromium 上下文结合起来意味着 2022-01-01
- 自定义 XMLHttpRequest.prototype.open 2022-01-01
- 直接将值设置为滑块 2022-01-01
- Chart.js 在线性图表上拖动点 2022-01-01
- 如何使用TypeScrip将固定承诺数组中的项设置为可选 2022-01-01
- 用于 Twitter 小部件宽度的 HTML/CSS 2022-01-01