반응형
axios post request with json data
axios JS 라이브러리를 이용하여 post json request를 보내고 있는데 서버에서 아무것도 받지 못하고 있습니다.여기 내 코드가 있습니다.
const dt = JSON.stringify({"data":{"value":"gdfg1df2g2121dgfdg"}});
const request = axios.post(url, {dt});
json 형식으로 post raw body를 보내야 합니다.
기본적으로 axios는 데이터 게시에 Json을 사용하므로 데이터를 문자열화할 필요가 없습니다.문제는 당신이 그렇게 하고 있다는 것일 수도 있습니다.그거 빼고 포스트 해보고 작동하는지 확인해줄 수 있나요?또한 데이터가 서버에 있는 개체의 형식이 아니면 데이터를 감쌀 필요가 없습니다.그렇지 않으면 제가 좀 더 문맥을 잡을 수 있도록 요청서 본문이 어떻게 생겼는지 정보를 주실 수 있나요?네트워크 탭을 사용하여 크롬 개발 도구에서 확인할 수 있습니다.
페이로드를 줄로 묶을 필요는 없습니다.Axios가 요청이 오면 대신 해줄 것입니다.
const dt = { data: { value: "gdfg1df2g2121dgfdg" }};
const request = axios.post(url, dt);
저는 이게 통했어요.
const [formData, setFormData] = useState({ username: "", password: "" });
그리고 이건 제출 손잡이 방식입니다.
export const Login = () => {
const navigate = useNavigate();
const location = useLocation();
const from = location.state?.from?.pathname || "/home";
const [formData, setFormData] = useState({ username: "", password: "" });
const [error, setError] = useState("");
const API = axios.create({
baseURL: "http://localhost:9000",
});
const updateUserName = (e: any) => {
setFormData({ ...formData, username: e.target.value });
};
const updatePassword = (e: any) => {
setFormData({ ...formData, password: e.target.value });
};
const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault();
const config = { headers: { "Content-Type": "application/json" } };
try {
const res = await API.post("/authenticate", formData, config).then(
(res) => {
console.log(res?.data);
if (res?.data.token) {
const token = res?.data.token;
console.log("token: " + token);
navigate(from, { replace: true });
} else {
console.log("incorrect submission");
setError(res.data);
}
}
);
} catch (err) {
if (!err) {
setError("no server response");
} else {
setError("registeration failed");
}
}
};
return (
<div className="App">
<form onSubmit={handleSubmit}>
User Name: <input type="text" onChange={updateUserName} />
Password: <input type="text" onChange={updatePassword} />
<button type="submit">Submit</button>
</form>
</div>
);
};
json을 본체로 하는 게시물 요청 액시오스:
static async postService(path, data = {}) {
const requestUrl = HttpRequest._getRequestUrl(path);
try {
const ret = await axios.post(requestUrl, JSON.stringify(data));
console.log('Request result ', ret);
} catch (error) {
console.error(`Request error: ${error.message}`);
}
}
언급URL : https://stackoverflow.com/questions/42958431/axios-post-request-with-json-data
반응형
'programing' 카테고리의 다른 글
함수 포인터 - 자동 재참조 (0) | 2023.09.19 |
---|---|
Docker 및 Vagrant를 통해 MariaDB를 설치할 수 없습니다. (0) | 2023.09.19 |
WooCommerce - 랜덤 상품 보여주기 (0) | 2023.09.19 |
음의 부호와 가변 길이 숫자를 고려하기 위해 인쇄 f를 어떻게 패드에 넣습니까? (0) | 2023.09.14 |
각2종 및 필터 (0) | 2023.09.14 |