单击 Excel/Word 中的链接时,该链接会将您带到检查用户代理以确定它是否受支持的站点,该站点可能会错误地假定您使用的是 MSIE 7.0,而实际上您使用的是其他东西,说铬。
当检查与请求一起发送的用户代理时,它显示请求来自 MSIE 7.0 - 从用户的角度来看,很明显没有使用 MSIE 7.0。
这里发生了什么?如何停止向用户显示错误消息?
单击 Excel/Word 中的链接时,该链接会将您带到检查用户代理以确定它是否受支持的站点,该站点可能会错误地假定您使用的是 MSIE 7.0,而实际上您使用的是其他东西,说铬。
当检查与请求一起发送的用户代理时,它显示请求来自 MSIE 7.0 - 从用户的角度来看,很明显没有使用 MSIE 7.0。
这里发生了什么?如何停止向用户显示错误消息?
问题似乎是 Excel/Word 在单击时尝试预加载链接。如果成功加载,它将使用给定的链接打开您的默认浏览器。但是,在预加载链接时,它也会遵循 302 重定向。如果站点不支持 MSIE7(现在变得相当普遍),它很可能会将您重定向到信息/错误页面。然后,预加载例程将在您的浏览器中打开此页面,而不是原始链接,从而产生一条可能解释为什么不支持 MSIE 7.0 的消息 - 但会使可以清楚地看到该页面是使用 Chrome 加载的用户感到困惑。
有没有推荐的编码方式?
如果之前已经回答过,请告诉我。我希望它可以帮助某人。
最简单的解决方案是在“IE 7 not supported page”上进行浏览器检查。Office 程序遵循重定向(基于它发送的错误用户代理字符串)将加载错误页面,接收 HTTP 200 响应,然后将链接抛出到默认浏览器。然后,浏览器使用其正确的用户代理字符串请求页面本身。
因此,一旦浏览器请求该页面,您就可以使用用户代理字符串来查看您是否真的想要发回“不支持”页面,或者将请求重定向到真实内容。
但是,这会引发查找被重定向的原始 URL 的问题。在最初请求页面的 Office 进程和最终通过端点 URL 的浏览器之间共享会话存在问题。此处的解决方法是将原始请求 URL 作为查询字符串参数包含在对“不支持”页面的重定向响应中。