为什么我的内容正文是经过编码的

本文关键字:经过 编码 正文 我的 为什么 | 更新日期: 2023-09-27 18:30:46

我用C#编写了一个HttpHandler来做一些加盐和哈希处理,并将ID发送回我的网页。网页将用户的名字和姓氏发送给处理程序,处理程序对其进行加盐和哈希处理,并将哈希发送回网页。

        function redirectToCustom(){
            var firstName = "First";
            var lastName = "Last";
            var xmlHttp = new XMLHttpRequest();
            xmlHttp.onreadystatechange = function() { 
                if (xmlHttp.readyState == 4) {
                        var surveyURL = "https://www.google.com";
                        var uri = surveyURL + "?id=" + encodeURIComponent(xmlHttp.responseText);
                        window.location = uri;
                    }
            };
            xmlHttp.open("GET", "http://myhandler/GetHash.ashx?fname=" + encodeURIComponent(firstName) + "&lname=" + encodeURIComponent(lastName), true);
            xmlHttp.send(null);                     
        }

处理程序的代码,GetHash.ashx如下,

        string fName = context.Request.QueryString["fname"];
        string lName = context.Request.QueryString["lname"];
        string fullName = string.Concat(fName, lName);
        string saltAndHash = PasswordHash.CreateHash(fullName);
        SaveToTable(saltAndHash);                   
        context.Response.ContentType = "text/plain";
        context.Response.Write(saltAndHash.Split(':')[2]);

问题是当我调试网页时,没有响应文本。

我看

了看Fiddler,有一个响应体,但它是编码的,我无法弄清楚为什么这个主体被编码,以及它是如何编码的。

为什么我的响应正文是编码的?

为什么我的内容正文是经过编码的

答案很简单,并在评论中向我指出。响应是 gzip 压缩。

我在标题中错过了这个

Content-Encoding: gzip

现在我必须弄清楚如何使用原生 JavaScript 解压缩响应文本。