gpt4 book ai didi

http - text-plain 的内容类型导致浏览器下载文件

转载 作者:可可西里 更新时间:2023-11-01 15:08:04 24 4
gpt4 key购买 nike

我正在编写一个 Web 应用程序 API,当有人访问 URL 时,它会返回文本数据。我将内容类型设置为“文本/纯文本”,但是当我使用 Chrome 访问它时,它会下载一个包含信息的文件,而不是显示它。当我用 IE 访问它时,它显示正常,当我用 Firefox 访问它时,它说它正在尝试访问应用程序/八位字节流,并询问我是否要下载该文件。

我使用 TinyHTTPProxy 记录了 Web 服务器返回的内容,如下所示:

[2012-03-11 16:51:45.345] INFO     {TinyHTTPProxy Thread-4} HTTP/1.1 200 OK
Content-Type: text/plain
Transfer-Encoding: chunked
Connection: close
Date: Mon, 05 Mar 2012 09:49:54 GMT
Server: localhost


[2012-03-11 16:51:45.345] INFO {TinyHTTPProxy Thread-4} 10b
P,FIO,7,31.5900,0.,,0,100,0,0,30.7600,31.9600,100,1000,,,0.,16:03:14t,,0,31.5900 ,1.2,,,15,n,,,,,03/09/2012,,31.2200,,,,-0.37,-0.37,0.274456994,,,,,0,,2846732.85 ,14,4,,3989502,BSE-CSE-NYSE-PSE-NMS,,,,,0,,,0,1155872,N,,26,26,26,16:03:14,5-7-10-11-12-13-18-25-26-28-80,0

如果我将内容类型更改为“application-json”,那么它将显示在所有浏览器上。此外,如果我将内容类型更改为“文本/html”,它也可以工作,即使我没有返回 HTML 文件。

是否有解释为什么 text/plain 会这样?我检查以确保返回的所有数据实际上都是 ASCII,并且由于我将内容类型设置为文本/纯文本,所以我很困惑为什么它被解释为应用程序/八位字节流。

最佳答案

听起来您可能遇到了 Chrome Issue 106150 . Chrome 显然(有时)决定在内容类型为文本/纯文本时使用“嗅探”逻辑。

可能的解决方法:

  • 发送 X-Content-Type-Options: nosniff header 。
  • 如果文本是 Unicode,请包含 BOM。这将告诉嗅探逻辑它确实是文本。
  • 从文件中删除“二进制外观”字节。来自错误报告“对于 ESC、CR、NP、NL、HT,0x00 和 0x1f 之间的任何值看起来都是二进制”。
  • 听起来使用显然应该是文本/纯文本的扩展名(如 .txt)可能会禁用嗅探。

关于http - text-plain 的内容类型导致浏览器下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9660514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com