这是一个带有失败 POST 方法的 React JS Fetch
This is a React JS Fetch with a failing POST method
我有一个简单的反应应用程序,我正在尝试请求和 post 方法并在我的 return div 中呈现响应。我的开发工具(网络)出现 400 错误。我已经调试了很多次应用程序。我只是不能中大奖。如果您 运行 postman 中的端点使用附加的令牌,您将看到响应...
import React from "react";
function Checkout() {
const handleSubmit = () => {
const token = "TOKEN";
const data = {
transactionReference: "string",
paymentMethod: "CreditCard",
checkoutOrderUrl: "http://www.test.com/",
user: {
name: "string",
msisdn: "+27610983142",
email: "test@test.com",
},
payementMethodDetail: {
RedirectUrl: "http://www.test.com",
PurchaseEventWebhookUrl: "http://www.test.com",
},
bundle: [
{
productCode: "311",
amount: 100,
currencyCode: "ZAR",
quantity: 1,
},
],
};
const requestOptions = {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
body: data,
};
fetch(
"--------",
requestOptions
)
.then((response) => response.json())
.then((res) => console.log(res));
};
return (
<div className="App">
<button type="submit" onClick={handleSubmit}>
Post Data
</button>
</div>
);
}
export default Checkout;
您没有将对象序列化为 JSON。您实际上 发送[object Object]
。为此使用 JSON.stringify
:
const requestOptions = {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
body: JSON.stringify(data), // <-- here!
};
在 requestOptions 中,您需要 凭据:'include',很可能是与 CORS 相关的问题。
我有一个简单的反应应用程序,我正在尝试请求和 post 方法并在我的 return div 中呈现响应。我的开发工具(网络)出现 400 错误。我已经调试了很多次应用程序。我只是不能中大奖。如果您 运行 postman 中的端点使用附加的令牌,您将看到响应...
import React from "react";
function Checkout() {
const handleSubmit = () => {
const token = "TOKEN";
const data = {
transactionReference: "string",
paymentMethod: "CreditCard",
checkoutOrderUrl: "http://www.test.com/",
user: {
name: "string",
msisdn: "+27610983142",
email: "test@test.com",
},
payementMethodDetail: {
RedirectUrl: "http://www.test.com",
PurchaseEventWebhookUrl: "http://www.test.com",
},
bundle: [
{
productCode: "311",
amount: 100,
currencyCode: "ZAR",
quantity: 1,
},
],
};
const requestOptions = {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
body: data,
};
fetch(
"--------",
requestOptions
)
.then((response) => response.json())
.then((res) => console.log(res));
};
return (
<div className="App">
<button type="submit" onClick={handleSubmit}>
Post Data
</button>
</div>
);
}
export default Checkout;
您没有将对象序列化为 JSON。您实际上 发送[object Object]
。为此使用 JSON.stringify
:
const requestOptions = {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: `Bearer ${token}`,
},
body: JSON.stringify(data), // <-- here!
};
在 requestOptions 中,您需要 凭据:'include',很可能是与 CORS 相关的问题。