我正在使用BinaryWrite HttpResponse 类的方法来获取网页。
与示例类似的内容...
FileStream MyFileStream;
long FileSize;
MyFileStream = new FileStream("APage.html", FileMode.Open);
FileSize = MyFileStream.Length;
byte[] Buffer = new byte[(int)FileSize];
MyFileStream.Read(Buffer, 0, (int)FileSize);
MyFileStream.Close();
Response.BinaryWrite(Buffer);
然后我使用 jQuery ajax 方法来获取该响应。但我用它做任何事都遇到困难 - 所以如果我……
$.ajax({
type: "GET",
url: "GetUrl.Proxy",
data: { url: 'http://www.example.org/test.html' },
success: function(data) {
$('iframe').contents().find('html body').html(data.toString());
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(errorThrown);
}
});
这会返回一个二进制字符流,我想要的是 jQuery 可以用来设置 html 元素的东西。
最佳答案
首先设置内容类型:
Response.Clear();
Response.ContentType = "text/html";
...
针对查找文件内容类型的问题:
string mt = "application/unknown";
string ext = Path.GetExtension(filename).ToLower();
var regKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext);
if (regKey != null) {
var tempMt = regKey.GetValue("Content Type");
if (tempMt != null) {
tempMt = regKey.GetValue("Content Type").ToString();
}
}
就我个人而言,我可能只会使用可能的扩展名和类型执行 switch 语句...
关于c# - 将二进制字符转换为 jQuery 可以使用的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4491732/