IE11:仅在特定服务器上出现错误 400

IE11: Error 400 only on specific server

我在 IE11 上收到错误请求:

该错误仅在使用 IE11 时出现,对于 Firefox 或 Chrome 它可以正常工作。而且只有在那个特定的环境中。它在 Tomcat 8.5 的开发环境中工作。它也适用于带有 Websphere 6.1 的旧 prod/preprod/dev 服务器。我无法在本地复制它,甚至没有更改 Tomcat 8 URIEncoding 连接器参数。

有人遇到过类似的事情吗?就目前而言,我发现的一个解决方法是在触发 window.open 之前使用 Javascript encodeURI 函数,但我正在寻找导致此操作仅在该特定服务器上失败的真正原因。

我尝试更改 IE 国际设置以对 URL 进行编码并将站点添加到我的安全站点,但错误仍然存​​在。

我发现发生了什么:DEV 服务器和 Preprod 服务器略有不同,DEV 有 Tomcat 8.5.3,Preprod 有 Tomcat 8.5.9,在那个版本中有一些限制对于 URI 中的字符,Firefox 和 Chrome 在将它们发送到服务器之前对其进行编码(这就是它在这些浏览器中不会失败的原因),IE 在它们到来时发送它们(甚至在选项中指定以对 URL 进行编码)。因此,对于 IE,需要在发送请求之前用 javascript 对它们进行编码。