작성
·
37
0
📤 before request
jwtUtil.ts:30 ✅ Response Received
jwtUtil.ts:34 📦 Content-Type: application/json
jwtUtil.ts:35 🧾 typeof res.data: string
content-type은 json 형식으로 맞춰 주었는데 정작 데이터가 String으로 와서 list에 뿌려주지를 못하고 있습니다.
Postman으로 확인했을 때는 정상적으로 JSON 데이터를 반환받는데 리액트에서 확인할려면 res.data가 "{\"dtoList\":[{\"tno\":115,\"title\":\"123zzzㅋㅋㅋㅋ\",\"content\":null,\"complete\":false,\"dueDate\":\"2025-08-07\",\"writer\":\"123\"}
위와 같이 스트링 형식으로 변환되어서 들어와서 오류가 생깁니다.
어디가 문제일까요..ㅠㅠ
답변 2
0
문제는 API서버 쪽인듯 합니다.
조회하는 경우이니
API서버를 브라우저에서 호출했을때 JSON형식으로 반환되는지를 확인해 봐야할 듯 합니다.
컨트롤러에서 객체를 반환하면 기본적으로 JSON으로 변환이 되어서 전송되는 것을 먼저 체크해 보셔야 할것 같네요..
axios를 이용하시니 정상적이면 JSON.parse가 필요하지는 않으실 겁니다.
jwt랑 시큐리티부분 gralde에서 주석처리하고 관련되어 있는 코드들 전부 주석처리 하니깐 정상적으로 리스트가 출력이 되네여.. 어디가 문제일까여 4시간 동안 디버깅하고 있는데 죽을 노릇이네여
예제코드와 디른점이 있을까요?
추가적인 기능이나 라이브러리 버전 문제가 가장 의심됩니다.
캐싱등을 이용해서 문제가 생기는 경우가 간혹 있긴하던데..
Jwt라이브러리 버전도 체크해주세요
jwt 버전이 강사님 gradle에 있는 버전과 다르길래 바꾸고 7장에서 한 모든 코드를 강사님이 하신 코드로 바꾸고
8장에서 한 리액트 코드도 강사님이 하신 코드로 전부 바꿧는데도 똑같이 json이 string으로 오네요 ㅎㅎ...
0
안녕하세요, 인프런 AI 인턴입니다.
영우님이 겪고 계신 문제는 주로 서버에서 클라이언트로 데이터를 전송하는 과정에서 JSON 데이터가 문자열 포맷으로 응답되어 오는 상황에 관한 것입니다. 이는 주로 서버 또는 HTTP 클라이언트 설정에서 발생할 수 있는 유사한 문제입니다.
서버 측 설정 확인:
Content-Type
이 'application/json'
으로 명확히 설정되었는지 확인하세요. 이를 통해 서버가 반환하는 데이터가 JSON 형식으로 해석될 수 있습니다.React 사용 중 Axios 설정 확인:
'Content-Type': 'application/json'
이 올바르게 설정되어 있는지 확인하시고, 추가로 responseType: 'json'
옵션이 필요할 수 있습니다.데이터 파싱 추가:
useEffect(() => {
axios.get('api_url')
.then(response => {
const jsonResponse = JSON.parse(response.data);
// 여기서 jsonResponse를 사용하여 상태 업데이트 등 수행
})
.catch(error => {
console.error('데이터를 파싱하는 동안 오류가 발생했습니다:', error);
});
}, []);
위의 방법들을 통해 문제를 해결하실 수 있기를 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
postman으로 응답시에 json이 정상적으로 들어와도 스프링쪽 문제일까요?
postman으로 베어러 토큰을 넣고 api/todo/list로 send하게 되면 정상적으로 json 데이터가 나오게 됩니다