taler-typescript-core

Wallet core logic and WebUIs for various components
Log | Files | Refs | Submodules | README | LICENSE

commit fa2e7aa1725fecc993ee563476a6d3baa9244ccc
parent f85ddb7a46bb46b635662a5ba258195bb46fce91
Author: Sebastian <sebasjm@gmail.com>
Date:   Wed, 21 Aug 2024 18:19:16 -0300

use x-www-form-urlencoded

Diffstat:
Mpackages/kyc-ui/src/pages/FillForm.tsx | 13+++++++------
Mpackages/taler-util/src/http-common.ts | 2++
Mpackages/web-util/src/utils/http-impl.sw.ts | 4+++-
3 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/packages/kyc-ui/src/pages/FillForm.tsx b/packages/kyc-ui/src/pages/FillForm.tsx @@ -132,17 +132,18 @@ export function FillForm({ payload: validatedForm, }; - const fh = new FormData() - // fh.set("header", JSON.stringify(information.header)) - // fh.set("payload", JSON.stringify(information.payload)) + // const data = new FormData() + // data.set("header", JSON.stringify(information.header)) + // data.set("payload", JSON.stringify(information.payload)) + const data = new URLSearchParams() Object.entries(validatedForm as Record<string,string>).forEach(([key, value]) => { if (key === "money") { - fh.set(key,Amounts.stringify(value)) + data.set(key,Amounts.stringify(value)) } else { - fh.set(key,(value)) + data.set(key,(value)) } }) - return lib.exchange.uploadKycForm(reqId, fh); + return lib.exchange.uploadKycForm(reqId, data); }, (res) => { onComplete(); diff --git a/packages/taler-util/src/http-common.ts b/packages/taler-util/src/http-common.ts @@ -502,6 +502,8 @@ export function encodeBody(body: unknown): ArrayBuffer { return body.buffer; } else if (body instanceof ArrayBuffer) { return body; + } else if (body instanceof URLSearchParams) { + return body as unknown as ArrayBuffer; } else if (typeof body === "object" && body.constructor.name === "FormData") { return body as ArrayBuffer; } else if (typeof body === "object") { diff --git a/packages/web-util/src/utils/http-impl.sw.ts b/packages/web-util/src/utils/http-impl.sw.ts @@ -104,8 +104,10 @@ export class BrowserFetchHttpLib implements HttpRequestLibrary { * in case of formData the content-type will be * auto generated */ - if (myBody instanceof FormData) { + if (requestBody instanceof FormData) { delete requestHeadersMap["Content-Type"] + } else if (requestBody instanceof URLSearchParams) { + requestHeadersMap["Content-Type"] = "application/x-www-form-urlencoded" } const controller = new AbortController();