我在IIS7中启用了压缩,除了ASP.NET AJAX构建的响应之外,它在所有响应上都按预期工作.我有一个向客户端提供数据的Web服务.直接调用Web服务时,会对其进行适当压缩.但是,当通过ASP.NET AJAX调用它时,JSON响应不会被压缩.
如何让ASP.NET AJAX通过GZip压缩发送其JSON响应?
IIS7使用内容编码来决定是否压缩响应(当然假设浏览器可以接受gzip).它们在applicationHost.config中设置,默认情况下列表是
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
Run Code Online (Sandbox Code Playgroud)
如果直接调用Web服务,则XML响应的内容类型text/xml将被压缩.当由AJAX调用时,JSON响应的内容类型为application/json,因此它不会被压缩.将以下内容添加到applicationHost.config应该修复...
<add mimeType="application/json" enabled="true" />
Run Code Online (Sandbox Code Playgroud)
你使用的是什么浏览器?IE 6 中存在一个错误,会导致压缩错误。因此 ASP.NET AJAX 关闭对 IE 6 浏览器的压缩:
http://weblogs.asp.net/scottgu/archive/2005/06/28/416185.aspx
另外,您是否启用了 ASMX 文件压缩?
| 归档时间: |
|
| 查看次数: |
5375 次 |
| 最近记录: |