diff options
Diffstat (limited to 'packages')
| -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,      });    } | 
