我试图发出一个帖子请求,我得到了以下回复:
HTTP/1.1 408请求体不完整 日期:星期二,7月19日022 07:53:39格林尼治标准时间 内容-类型: text/html;charset=UTF-8 连接:关闭 缓存控制:无缓存,必须重新验证 时间戳: 09:53:39.074 请求体不包含指定的字节数。获得62.913,预期116.798
这个错误没有显示在Chrome的控制台上,而是使用Fiddler发现的。我可以有把握地说,这个服务被证明不是问题的原因,因为它已经安装在不同的服务器上,并且一直在工作,但是如果它能够帮助跟踪问题,下面是调用
var postJson = function (url, parameters) {
forceDateToIsoStringparameters)
var deferred = $.Deferred();
var ajax = $.ajax({
type: 'POST',
url: url,
data: parameters)
dataType: 'json'
}).done(function (data) {
deferred.resolve(data);
}).fail(function (error) {
deferred.reject(error);
});
return deferred.promise(ajax);
};
服务器设置:
失败的服务托管在IIS 8上,并且已在设置HTTPS协议的情况下从一个服务器移动到另一个服务器。它在上一台服务器上运行得很好,但目前,一些请求显然太大,通过HTTPS在某些计算机上返回"error 408“响应。服务器在同一个IP和端口(443)上有两个单独的绑定,两个不同的证书链接到两个不同的主机名。
此外,我们将IIS中的请求限制大小增加到超过失败请求主体的大小。
客户端设置:
服务响应的PC机和其他没有响应的PC机之间没有区别。这两种系统都运行Windows 10,连接是在Chrome上执行的(即使是在匿名模式下)。请求体在工作PC机和不工作PC机上都是相同的,对于不工作的PC机具有相同的精确大小(116798),因此可以通过减小机身的大小来使调用成功;但是我们不知道服务器端或客户端(PC、路由器等)上的设置会导致这种行为。
编辑:
经过一些测试后,出现的问题似乎没有发生在Edge上,Chrome中的某些东西正在截断ajax请求
发布于 2022-08-11 08:41:34
尝试在标头中注释content-length:116.798
,因为服务器端长度检查中有错误。如果内容长度小于实际长度,则不会出现错误,但如果内容长度大于实际长度,则会报告错误,从而导致验证失败。
https://stackoverflow.com/questions/73292346
复制相似问题