반응형
스터디를 진행하던 중 프론트와 백엔드 연동에서 axios라이브러리의 위험성을 많이 느꼈다. 크롬 등 웹브라우저에서 자동으로 해주는 것이 많았기 때문에 사용자가 당연히 될 거라고 생각한 것들이 axios다른 방식으로 해주는 것들이 있었다.
기억에 남는 것은 2가지 사례가 있었다.
1. axios content-type에 맞는 사용방법
axios 공식문서: https://github.com/axios/axios#using-applicationx-www-form-urlencoded-format
axios에서 form-data를 사용할 때 공식문서 가이드에 맞게 사용해야한다.
const axios = require('axios');
let params = new URLSearchParams()
params.append(<field1>, <value>)
params.append(<field2>, <value>)
axios.post(<url>, params)
.then((response) => {
console.log("Success");
console.log(response.status);
console.log(response.headers);
}).catch((error) => {
console.log("error");
console.log(error.response.status);
});
2. http프로토콜 301응답
http프로토콜에서 301응답을 받으면 http 헤더 location필드에 리다이렉트해야하는 주소가 있다. 웹 브라우저는 301응답을 받으면 location필드로 자동으로 요청을 날려주는데, axios는 location으로 리다이렉트를 할 때 GET메소드를 사용하여 리다이렉트된다.
문제는 POST API로 리다이렉트 될때 GET API로 리다이렉트된다. 결국, 원하는 요청으로 가지 않아 응답을 못받게 된다.
반응형
'일상생활' 카테고리의 다른 글
12.16 업무중 있었던 일 (0) | 2021.12.16 |
---|---|
토요일 일상. (0) | 2021.12.12 |
프로메테우스 tsdb구조는 신기방기 (0) | 2021.11.11 |
helm2를 쓴 관리자는 당시에 고생했을 것 같다.. (0) | 2021.11.11 |
요즘 느낀건.. c, c++은 위대하다... (0) | 2021.11.06 |