当我通过 POST 使用 jQuery 的 ajax 函数提交数据时,它会在我网站的一页上以特定的字符长度间隔超时。我可以提交少于 16k 个字符,然后我可以提交 24k 个字符,然后是大约 30k,然后是 35k ......并且介于两者之间的各种字符长度不起作用。它是一致的,但完全随机。这只发生在网站的 1 页上。我创建了一个空白页面,除了提交我选择的字符数(见下文)之外什么都不做,它总是有效的。所以它只是有这个问题的一个页面,并且只在 FF & Crome 中(Safari 很好,IE 工作一半时间),而不仅仅是在我的电脑上。以表格的形式正常提交数据完全可以。我真的很困惑。是客户端还是服务器端?
例子:
var string = '';
for (var z = 0; z < 20000; z++) {
string += 'b';
}
$.ajax({
url: 'test.php',
data: 'd=' + string,
type: 'POST',
dataType: 'html',
timeout: 15000,
beforeSend: function () {
alert('sending');
},
success: function (response) {
alert(response);
},
error: function (e) {
alert('timeout');
}
});
所以我发现我的测试方法很糟糕,因为我通过 http 进行上述测试,而站点的其余部分以 HTTPS 运行。一旦我切换到 HTTPS,上面的脚本就会在 FF 中以相同的字符计数间隔失败。即使是常规形式也不再适用于超过 15k 个字符。SSL证书似乎有问题。