【发布时间】:2018-12-15 11:36:41
【问题描述】:
[Route("encrypted")]
[HttpGet]
public sbyte[] Encrypted()
{
var mm = System.IO.File.ReadAllBytes("C:\\test\\" + "fill.txt");
sbyte[] sbt = new sbyte[mm.Length];
Buffer.BlockCopy(mm, 0, sbt, 0, mm.Length);
return sbt;
}
但是当我检查前端(javascript)时。它变成了一个不同的arrayBuffer:
前端代码如下:
var xhr = new XMLHttpRequest();
xhr.open('GET', '/api/encrypted/', true);
xhr.responseType = 'arraybuffer'; //i have tried without this line too
xhr.onload = function (e) {
if (this.status === 200) {
console.log("received from server--------");
console.log(e.currentTarget.response);
console.log("received from server-------");
}
};
xhr.send();
【问题讨论】:
-
为什么在读取文件时使用
sbyte?您应该只使用byte,因为ReadAllBytes返回byte[]而不是sbyte[]。 -
是的,我知道。我没有带符号字节,失真也随之发生。
标签: javascript c# asp.net-web-api asp.net-core