Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ajax调用中压缩web服务响应json_Json_Ajax_Web Services_Compression - Fatal编程技术网

如何在ajax调用中压缩web服务响应json

如何在ajax调用中压缩web服务响应json,json,ajax,web-services,compression,Json,Ajax,Web Services,Compression,我正在使用ASMXWeb服务,并通过ajax将其作为 $.ajax({ url: 'xxxxxxx.asmx/Getxxxxxxxx', method: 'post', contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (data) { $(data.d).each(funct

我正在使用ASMXWeb服务,并通过ajax将其作为

$.ajax({ url: 'xxxxxxx.asmx/Getxxxxxxxx', method: 'post', contentType: 'application/json; charset=utf-8', dataType: 'json', success: function (data) { $(data.d).each(function (index, category) { $.ajax({ url:'xxxxxxx.asmx/getxxxxxxx', 方法:“post”, contentType:'application/json;charset=utf-8', 数据类型:“json”, 成功:功能(数据){ $(data.d).每个(函数(索引,类别){ 我的服务返回一个对象列表。我正在阅读如何压缩web服务的响应,在我看来,要做到这一点,我需要重写GetWebRequest方法并使用Gzip/Deflate(在从web服务代理类派生的类中)

下一步是使用该类的实例(覆盖GetWebRequest)并在应用程序中使用它

因为我使用的是ajax调用,所以我不确定如何使用这个重写GetWebRequest方法的类实例


谢谢。

为了从web服务向客户端发送压缩响应,您必须使用内容编码字段并将其值设置为压缩

   content-encoding: gzip
但是,在此之前,您必须检查客户端发送的“接受编码”头的值

   Accept-Encoding: compress, gzip
   Accept-Encoding:
   Accept-Encoding: *
   Accept-Encoding: compress;q=0.5, gzip;q=1.0
   Accept-Encoding: gzip;q=1.0, identity; q=0.5, *;q=0
无论您使用何种语言/技术,上述指南均适用

有关HTTP协议头的更多信息,请参阅

编辑

必须在ajax请求中设置“Accept Encoding”请求头。您可以通过在ajax请求中设置“headers”来实现这一点,如下所示:

  $.ajax({
    url: 'xxxxxxx.asmx/Getxxxxxxxx',
    method: 'post',
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    headers: {
       "My-First-Header":"first value",
       "My-Second-Header":"second value"
    }
    success: function (data) {}
  });

那么,这是否意味着在发送请求时,我需要提到“接受编码:压缩,gzip”,然后Web服务响应应该包含“内容编码:gzip”?我仍然不知道该怎么做。感谢您的编辑。我将如何在响应中实施内容编码:gzip?有几种不同的方法可以做到这一点。这取决于您在您使用的服务平台和应用程序服务器上。因此,在不了解有关您服务的更多详细信息的情况下,我无法直接告诉您。我使用的是visual studio 2015。我的网站基于asp.net webforms和asmx web服务。语言为c#,我使用的是windows server。我找到了此链接,其中说明了applicationHost.co中的更改nfig文件,但我如何在godaddy服务器上执行它?