作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这是一个典型的场景:评估一个页面,并且有一个缓冲区 - 一旦缓冲区已满,评估的页面部分就会发送到浏览器。这使用 HTTP 1.1 分块编码。
但是,其中一个 block 中可能会发生错误(在第一个 block 已发送之后)。在那种情况下:
Location
header ),因为 header 和响应状态已发送那么在这种情况下你应该怎么做呢?我 asked a question您是否可以在分块尾部中发送 Location header ,但这是低级 http,语言的抽象可能不允许它,即使它是可能的(并且很可能不支持跨浏览器)
另一种选择是发送 <script>window.href.location="errorPage"</script>
从而迫使客户端重定向,但这很丑陋。另外你必须把</script>
关闭任何潜在的未关闭 <script>
部分页面中的标记。
(我正在标记主要的网络语言/框架,因为这是一个普遍的问题)
最佳答案
您不能以分块编码从服务器重定向,因为 header 已经发送。执行重定向的唯一方法是发送 <script>
从服务器标记并执行客户端重定向。出于好奇,您是否正在尝试实现 COMET 服务器?如果是这种情况,与 hidden iframe technique 相比,HTML5 WebSockets 似乎是更好的方式(如果您的目标浏览器当然支持它们) .
关于php - 如果已发送部分响应(分块),如何将浏览器发送到错误页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7503765/
我是一名优秀的程序员,十分优秀!