"Content-Type:text/plain"会强制下载文件

9
如果我调用header('Content-Type:text/plain; charset=ISO-8859-15');,浏览器会下载文件而不是显示它。改用text/html就可以了。(下载的文件仍然会被处理,而不是下载源代码)
我尝试添加header('Content-Disposition:inline;');,但它被忽略了。
我对导致这个问题的原因一无所知,有什么提示吗?
服务器是MAMP 1.9.6(PHP 5.3.5,Apache/2.0.64)。
编辑:这只发生在Chrome上,在Firefox、Camino和Safari上可以正常工作。

1
它是哪个浏览器?我很确定IE会在遇到除了“image / *”和“text / html”之外的任何内容时提示下载。这就是为什么javascript / css文件会下载而不是显示的原因。 - Rudi Visser
很奇怪,从未见过这种情况(也无法重现):( - Rudi Visser
1
@rudi_visser:你走在正确的轨道上了:它可以在Firefox、Camino和Safari上运行。看起来这是Chrome的问题。如果有人知道解决方法,我会尝试一下,否则我只能回到text/html:/。 - o0'.
2个回答

12

我使用这个脚本无法重现此问题:

<?php

  header('Content-Type:text/plain; charset=ISO-8859-15');
  echo "This is some text";

然而,我可以使用以下代码复现该问题:

<?php

  header('Content-Type:text/plain; charset=ISO-8859-15');
  echo "\x00This is some text";

请确保您的内容实际上确实是纯ASCII文本...


3
好的,我来翻译以下:我猜就是这样。我以为浏览器即使有控制字符也会试图显示它。看起来我想错了。 - o0'.

-4

对我来说,这个可以工作:

header('Content-Type:text/javascript;');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接