diff options
author | Florian Dold <florian@dold.me> | 2021-01-06 18:09:59 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-01-06 18:09:59 +0100 |
commit | 3773a4cdfff26297981094cb5c48e755ac75a77c (patch) | |
tree | 8f14933e84c381c91aaa3ebd2f59898f428d11a0 /packages/taler-wallet-webextension/src | |
parent | af08b2d1feb67b88c9554f34b4b44caa548eda7e (diff) | |
download | wallet-core-3773a4cdfff26297981094cb5c48e755ac75a77c.tar.xz |
browser fixes
Diffstat (limited to 'packages/taler-wallet-webextension/src')
-rw-r--r-- | packages/taler-wallet-webextension/src/browserHttpLib.ts | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/packages/taler-wallet-webextension/src/browserHttpLib.ts b/packages/taler-wallet-webextension/src/browserHttpLib.ts index bfc855633..08364e404 100644 --- a/packages/taler-wallet-webextension/src/browserHttpLib.ts +++ b/packages/taler-wallet-webextension/src/browserHttpLib.ts @@ -24,6 +24,7 @@ import { HttpRequestOptions, HttpResponse, Headers, + bytesToString, } from "taler-wallet-core"; import { TalerErrorCode } from "taler-wallet-core"; @@ -78,10 +79,16 @@ export class BrowserHttpLib implements HttpRequestLibrary { reject(exc); return; } + const makeText = async (): Promise<string> => { + const td = new TextDecoder(); + return td.decode(myRequest.response); + }; const makeJson = async (): Promise<any> => { let responseJson; try { - responseJson = JSON.parse(myRequest.responseText); + const td = new TextDecoder(); + const responseString = td.decode(myRequest.response); + responseJson = JSON.parse(responseString); } catch (e) { throw OperationFailedError.fromCode( TalerErrorCode.WALLET_RECEIVED_MALFORMED_RESPONSE, @@ -126,7 +133,7 @@ export class BrowserHttpLib implements HttpRequestLibrary { headers: headerMap, requestMethod: method, json: makeJson, - text: async () => myRequest.responseText, + text: makeText, bytes: async () => myRequest.response, }; resolve(resp); @@ -149,7 +156,7 @@ export class BrowserHttpLib implements HttpRequestLibrary { ): Promise<HttpResponse> { return this.fetch(url, { method: "POST", - body, + body: JSON.stringify(body), ...opt, }); } |