gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:38:47 25 4
gpt4 key购买 nike

我正在使用 asmx 网络服务并通过 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) {

我的服务返回一个对象列表。我正在阅读如何压缩 Web 服务的响应,在我看来,要执行此操作,我需要重写 GetWebRequest 方法并使用 Gzip/Deflate(在从 Web 服务代理类派生的类中)。

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

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

谢谢。

最佳答案

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

   content-encoding: gzip

但是,在此之前,您必须检查客户端发送的“Accept-Encoding” header 的值。此 header 的可能值为

   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协议(protocol)头信息,引用

https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html

编辑

“Accept-Encoding”请求 header 必须在您的 ajax 请求中设置。您可以通过在您的 ajax 请求中设置“ header ”来做到这一点,如下所示:

  $.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) {}
});

关于json - 如何在ajax调用中压缩web服务响应json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39284015/

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