[MIME] Content-Type 、IE、MIME和 注册表的那些事 (text/plain 文件 下载)

最近碰到了一个很郁闷的问题,大致情况如下:

 

手边有一个J2EE的应用,里面有一个action 设置响应报头 Content-Type 为 text/plain;charset=** ,结果导致一部分客户机子访问此url出现后台运行正常,但是页面上出现下载。

比如我们访问的是 http://localhost/test/a.jspa , 结果出现了一个下载框提示下载a.jspa文件且此文件类型是 jspa_auto_file。

 

经过两天的查找终于理出点头绪,原来是注册表中 HKEY_CLASSES_ROOT 项下多了一个子项 .jspa且这子项的值为jspa_auto_file。

 

然后我做了一些测试,发现只有满足以下三个条件才能成立:

  1. 后台应用设置响应报头 Content-Type 为 text/plain;charset=**
  2. 注册表中 HKEY_CLASSES_ROOT下有URL后缀同名的子项,且子项的值为“子项的名字+_auto_file”.比如URL 为 http://localhost/a.suffix 那么子项的名字为 .suffix 值为 suffix_auto_file
  3. 返回的数据是纯文本

才会出现上述的情况。

 

为什么会这样呢,根据网上的资料和MSDN的文档,我的推测如下:

 

IE在解析URL的时候会自动检测MIME类型,当碰到text/plain类型的时候他会查找注册表中HKEY_CLASSES_ROOT项下是否有匹配的内容,如果有就会使用此值进行解析。

 

还望对IE熟的高手指教

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值