안녕하세요 상훈입니다.
Vue3 + Spring 를 비동기 통신 axios 로 서버의 데이터 불러오기를 하려고합니다.
2가지 이슈가 있었습니다.
1) Spring에서 사용하는 Post 방식.
2) Axios 통신에서 생기는 자체적인 문제
해당하는 부분에 적용해서 봐주시면 될 것 같습니다.
- GET방식만 사용하다 보니, POST 방식을 똑같이 적용하는데에 오류가 발생하였다.
그래서 AXIOS를 사용하여 데이터를 백에서 받을 때 자체가 정상적으로 이루어지지 않았다.
@RestController
@RequestMapping("/rp")
public class RPController {
@Autowired
RPService rpService;
@ResponseBody
@PostMapping("/getItems")
public List<SearchListOut> searchLists (@RequestBody SearchListIn searchListIn) {
return rpService.searchLists(searchListIn.getRSeq());
}
}
- RestController 를 설정, ReqeustMapping을 통하여 "/rp"에 대한 모든 경로를 받을 것을 선언.
- Service를 연결.
- ResponseBody, PostMapping 을 통하여 post 통신방식으로 데이터를 받을 것을 선언.
- @RequestBody SearchListIn searchListIn
ㄴ searchListIn.java DTO 에서 선언한 내용을 값으로 받겠다고 선언
- searchListIn.getRSeq() 를 통해 해당 값을 전달.
// SearchListIn DTO
import lombok.Data;
@Data
public class SearchListIn {
private int rSeq;
}
이렇게 처리하여서 값을 받아왔습니다!
알고보니 axios에서 2번째 파라미터로 값을 보내게 되는데, 이 부분에서 제대로 적용이 안된다는 이슈가 있었습니다.
그래서 3번째 파라미터로 전달하도록 처리했습니다.
function _fetchRP (url, payload) {
return new Promise ((resolve, reject) => {
axios.post(url, null, {params: {...payload} })
...
}
}
3번째 인자는 원래 config 옵션인데, 이상하게 그렇게 오류가 뜬다고 알려져 있더라구요.
후일 2번째 파라미터로 정상 동작하게 된다면 현재 옵션이 오류가 발생할 것으로 보입니다.
유념해주세요!
[혼공네트] 혼자 공부하는 네트워크 도서 리뷰 (0) | 2024.05.16 |
---|---|
[Spring, Maven, MySQL] Communications link failure - solution / 오류 해결하기 / 해결방법 (1) | 2024.01.10 |
MongoParseError: option usefindandmodify is not supported at parseOptions ... MongoDB Error 에러 해결 (0) | 2022.03.15 |
[ Node.js ] NodeJS address already in use 에러 해결하기/ 열린 포트 강제 종료하는 방법 (0) | 2022.01.17 |
[ Web Socket, socket.io] VSCode에서 웹소켓 이용하기 - 특이점 (0) | 2022.01.13 |
댓글 영역