vue.js에서도 ajax처럼 데이터를 비동기로 받아올 수 있는데 그게 axios라고 한다.
$http였나 그걸로도 가능한 거 같던데, vue.js 개발자가 axios 쓰는 걸 권장한다고 해서 도전해봤다.
열심히 구글링해서 라이브러리 추가하고 post 방식으로 설정해 url과 param을 넣어서 보내봤는데
data가 오지 않았다. 정확히는 data에 열 몇 개의 엔터만 돌아왔다.
설정한 url에 접속하면 로그가 찍히도록 수정 후 확인하니 로그가 찍히질 않았다. 페이지에 아예 안들어오는 거 같았음.
근데 웃긴건 분명 status도 200이고 url도 data에도 설정한 값이 잘 들어가 있다.
responseUrl도 내가 설정한 URL이 그대로 들어가 있는데 값이 안 와ㅋㅋㅋ
이제 막 vue.js를 배우는 중인데 원인을 몰라 이것저것 뒤지다 반 정도지만 해결책을 찾아내서 써놓는다.
오늘도 이런 거 찾느라 3시간 날리고 기분이 참 좋았다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
const params = new URLSearchParams();
params.append('param1', 'value1');
params.append('param2', 'value2');
axios.post('url',params)
.then(response => {
if(response.status == 200){
console.log(response);
}
})
.catch(function(error){
console.log(error);
});
|
cs |
대충 보니 파람값을 보낼 때 url 인코딩 포맷을 지정해주는 거 같은데 영문이다보니 자세하게는 모르겠다.
왜 반밖에 해결이 안됐냐고 표현했냐면, URLSearchParams 클래스가 IE에서는 아예 동작하지 않기 때문.
바꿔말하면 IE 빼고 다 지원이 된다^^!!! IE빼고 다!!!! 오늘 IE를 때리고 싶은 생각이 몇 번이나 들었는 지ㅎㅎ
다만 비슷한 방식 중 URLSearchParams 대신 FormData를 생성해 파람값을 설정하는 방식은 내 소스에는 동작하지 않았다.
자세한 건 하단의 링크를 참고.
https://www.npmjs.com/package/axios#using-applicationx-www-form-urlencoded-format
https://stackoverflow.com/questions/47630163/axios-post-request-to-send-form-data
'Study' 카테고리의 다른 글
[javascript] 숫자에 자리수 표시하기 (0) | 2020.06.18 |
---|---|
쿠키, 세션, 캐시 (0) | 2020.05.25 |
DKIM, DMARC (0) | 2020.05.19 |
[javascript] iterator 관련 함수 (0) | 2020.05.15 |
[javascript] 배열 관련 함수 (0) | 2020.05.14 |