为什么我的内容主体是经过编码的?
Why is my content body coming through encoded?
我用 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里看了一下,有响应body,但是是编码的,搞不懂body为什么编码,怎么编码的。
为什么我的响应正文是经过编码的?
答案很简单,在评论里给我指出来了。响应是压缩的。
我在 headers
中错过了这个
Content-Encoding: gzip
现在我必须弄清楚如何使用本机解压缩响应文本 JavaScript。
我用 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里看了一下,有响应body,但是是编码的,搞不懂body为什么编码,怎么编码的。
为什么我的响应正文是经过编码的?
答案很简单,在评论里给我指出来了。响应是压缩的。
我在 headers
中错过了这个Content-Encoding: gzip
现在我必须弄清楚如何使用本机解压缩响应文本 JavaScript。