如何使用jQuery的$ .getJSON获取gzip jsonp?

时间:2012-05-14 20:44:30

标签: jquery json cross-domain gzip jsonp

  

可能重复:
  Is it possible to force jQuery to make AJAX calls for URLs with gzip/deflate enabled?

我正在使用jsonp浏览两个不同的域。 Domain1使用带有回调参数的$ .getJSON向Domain2请求一些json数据,并且效果很好,没有任何问题。

Domain2也可以为gson数据提供gzip服务。

我想利用这个功能,但我不知道如何使用jQuery的$ .getJSON从Domain1请求它。

这是否可行,如果可以,请给我一个例子(或任何其他解决方法)。

谢谢!

2 个答案:

答案 0 :(得分:1)

gzipping您的http流量是一个服务器选项,对于使用内容的实际进程(在您的情况下是您的脚本)是透明的。浏览器负责gzipping,但只有在连接的两端都支持它时才会起作用(这在请求头中传达)。此外,您必须启用它的服务器端(例如在apache中使用mod_deflate)

您声明domain2上的服务器支持gzipping,因此如果您正确配置了所有“gzippable”的流量将自动进行gzip压缩。您无需进行额外的工作。

如果你想知道yrou流量是否被gzip压缩,请查看你的jsonp调用的响应头。他们应该说使用了gzip。例如,您可以在chrome中执行此操作。

答案 1 :(得分:0)

在这种情况下,我认为没有办法告诉您的浏览器该做什么。如果这是我们正在讨论的JSONP请求,则由您的浏览器决定哪些标头被发送。 JSONP请求只是另一个<script>标记。