我正在使用访存来发布一些经过url编码的表单数据,如下所示:
private buy = async () => {
const { nonce } = await this.state.instance.requestPaymentMethod();
const formBody = [];
formBody.push(`${encodeURIComponent("paymentMethodNonce")}=${encodeURIComponent(nonce)}`);
// @ts-ignore
const response = await fetch(`http://localhost:4000/checkout`, {
method: "post",
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
},
body: formBody,
});
}
在忽略时可以正常工作,但是在这种情况下应该使用哪种类型,以便可以删除忽略?
答案 0 :(得分:0)
fetch
API是DOM
API的一部分,并且被定义为lib.dom.d.ts
的一部分。
根据此定义,body
类型定义为:
type BodyInit = Blob | BufferSource | FormData | URLSearchParams | ReadableStream | string;
因此,对于内容类型为application/x-www-form-urlencoded
的请求,您可以将URLSearchParams
用作body
类型:
private buy = async () => {
const { nonce } = await this.state.instance.requestPaymentMethod();
const formBody = new URLSearchParams();
formBody.append('paymentMethodNonce', nonce);
const response = await fetch(`http://localhost:4000/checkout`, {
method: "post",
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
},
body: formBody,
});
}