Windows 2000 的 IIS,即 IIS 5 中,如果使用 ASP 的 Request.Form 取的数据超过 100K 就会出现“未知错误”,本文通过提交时分割数据来解决。
客户端 JS
// 分块传送,避免 IIS 5 中 Request.Form 取超过 100K 的数据时出错
var blockSize = 100000;
while (content.length > blockSize)
{
var c = document.createElement("input");
c.type = "hidden";
c.name = "content";
c.value = content.substr(0, blockSize);
content = content.substr(blockSize);
objForm.appendChild(c);
}
if (content.length > 0)
{
// 尾块处理
var c = document.createElement("input");
c.type = "hidden";
c.name = "content";
c.value = content;
objForm.appendChild(c);
}
服务器端处理
function RequestBlock(itemName)
RequestBlock = ""
dim i
for i = 1 to Request.Form(itemName).count
RequestBlock = RequestBlock & Request.Form(itemName)(i)
next
end function
用 RequestBlock 来代替 Request.Form。