这里我调用 GetFile ,以 ArrayBuffer{} 对象的形式获取响应,如果我这样做,则在网络选项卡中响应为 {"errors":["photoProof Image is not available in the system"]}。
$scope.getDocuments = function(){
Myservice.downLoadDocument('photo', $scope.user.mobileNo).
then(function(response){
})
}
如果我这样做,网络选项卡中的值将低于此值。
response.byteLength = 64
如何将此 ArrayBuffer 转换为正确的 JSON 格式?
这对我有用:
String.fromCharCode.apply(null, new Uint8Array(replaceThisByYourData))
您可以使用TextDecoder:
try {
parsedJson = JSON.parse(new TextDecoder().decode(response as ArrayBuffer));
} catch (e) {
parsedJson = {};
}
在我的例子中,请求正在等待 ArrayBuffer 响应,但如果后端发生错误,我会得到一个包含错误的 JSON 对象。我检查此代码的响应是否有错误。
需要 try-catch 块,因为如果 ArrayBuffer 不是 json,那么 JSON.parse() 方法将抛出错误。
也许你可以使用json-bufferify。它是一个帮助您在 JSON 和 ArrayBuffer 之间进行转换的模块,您可以在 Node.js 和浏览器中运行它。
您可以使用:
Buffer.from(yourArrayBufferValue).toJSON();
虽然这个答案有点晚了,但我希望它对某人有帮助
var jsonResult = JSON.parse(JSON.stringify(response));
会创造奇迹。