I have a simple form like this one below:
{
"code": "test1",
"article": "door",
"price": 12,
"vat": null,
"status": 1,
"company_id": 10
}
So i need to post this form using fetch API upon clicking on Add button. The only error i'm getting after pressing Add button in console.dev with error 420 is :
POST https://api.factarni.tn/article/create 420
This is my try so far:
const New = ({ inputs, title }) => {
const handleClick = (e) => {
e.preventDefault();
fetch("https://api.factarni.tn/article/create", {
method: "POST",
body: JSON.stringify({
code: "test1",
article: "door",
price: 12,
vat: null,
status: 1,
company_id: 30,
}),
headers: {
Authorization:
"Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6ImFkMWIxOWYwZjU4ZTJjOWE5Njc3M2M5MmNmODA0NDEwMTc5NzEzMjMiLCJ0eXAiOiJKV1QifQ.eyJuYW1lIjoibW9oYW1lZCIsImlzcyI6Imh0dHBzOi8vc2VjdXJldG9rZW4uZ29vZ2xlLmNvbS9mYWN0YXJuaSIsImF1ZCI6ImZhY3Rhcm5pIiwiYXV0aF90aW1lIjoxNjYwNzIzNDA5LCJ1c2VyX2lkIjoiQ3hKejMwR1ExYlVLMVd0SjdDa1NVUzJ4NW5rMSIsInN1YiI6IkN4SnozMEdRMWJVSzFXdEo3Q2tTVVMyeDVuazEiLCJpYXQiOjE2NjA3MjM0MDksImV4cCI6MTY2MDcyNzAwOSwiZW1haWwiOiJpZHJpc3Ntb3VoYW1lZDg0MUBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6dHJ1ZSwiZmlyZWJhc2UiOnsiaWRlbnRpdGllcyI6eyJlbWFpbCI6WyJpZHJpc3Ntb3VoYW1lZDg0MUBnbWFpbC5jb20iXX0sInNpZ25faW5fcHJvdmlkZXIiOiJwYXNzd29yZCJ9fQ.XoDs7DEYWQm9AwWFEbR7CtKpgvTh_zH8E5V1e8nUp5OwQT3hjKMUBFRCa7p_v-1TXAF5VoSDGTt0vZRgtPj6u7mIzagi0CPkuQYVyUkhHo2wBOV-IHbCRTqg-M4d6WDQvfSp1C0OzUnEg8eduUr7F7znuLnAUZQKBZ_Xp9ogj8aAZo-R8Na0HE5h0L9fIslD9UFBj2192EVebpb2DJir16beotXpd04d_qC1WCrN3WMsWdvgl2BRrTiG6SkqqwZH1hZzNkajNtIrhpYLnSOBoE3SsiIczvctqexynxmlle7gWaBN22t1M3sk3NHCkdfkSrXRi3PIBr71qw2QWltkyA",
},
}).then((response) => response.json());
};
return (
<div className="New">
<Sidebar />
<div className="newContainer">
<Navbar />
<div className="top">
<h1>{title}</h1>
</div>
<div className="bottom">
<div className="right">
<form>
<div className="formInput"></div>
{inputs.map((input) => (
<div className="formInput" key={input.id}>
<label>{input.label} </label>
<input type={input.type} placeholder={input.placeholder} />
</div>
))}
<button onClick={handleClick}>Add</button>
</form>
</div>
</div>
</div>
</div>
);
};
export default New;
How to fix it?
CodePudding user response:
I fixed my problem by adding missing Content-Type
and JSON.stringify
:
await fetch("https://api.factarni.tn/article/create", {
method: "POST",
body: JSON.stringify({
code: `1`,
article: `porte`,
price: 12,
vat: null,
status: 1,
company_id: 10,
}),
headers: {
"Content-Type": "application/json",
Authorization:
"eyJhbGciOiJSUzI1NiIsImtpZC...
},
});