inflearn logo
강의

Course

Instructor

Vue3 Perfect Mastery: From Basics to Practice - "Practical Edition"

axios Module & Vite Environment Variable Setup (env)

TypeError 질문

52

thwjd3698

2 asked

0

TypeError: relativeURL.replace is not a function at async fetchPost (PostDetailView.vue:58:20)

PostDetailView에서 number를 string타입으로 변경 후 콘솔에러가 뜹니다.

router 폴더도 강의와 같이 수정했고, api 폴더 안에 index.js랑 posts.js도 강의와 같이 수정했는데 왜 타입에러가 뜨는지 문의드립니다.

return posts.get(id);

이 부분을 return posts. gen (id + ' ') 로 변경해야 콘솔 에러가 없어져요.
다른 부분은 강의와 똑같이 수정하였습니다.

vue.js

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. thwjd3698님.

TypeError: relativeURL.replace is not a function 에러는 주로 axios 요청에서 잘못된 URL 포맷이나 해당 URL의 타입이 문자열이 아닐 때 발생하는 오류입니다. Vue.js를 사용하면서 발생할 수 있는 이 문제에 대해 몇 가지 사항을 점검해 보도록 하겠습니다.

문제의 원인 및 해결 방법

  1. ID의 타입 확인: id의 값이 번호형(Number)일 경우, axios 요청에서는 이를 문자열(String)로 변환해야 합니다. 즉, axios에 요청하는 부분에서 URL을 조합할 때 id가 문자형인지 확인하세요.
   return posts.get(`/${String(id)}`);

위 코드에서 사용된 String(id)를 통해 id가 문자형으로 변환되고, 이를 통해 URL이 올바르게 처리될 것입니다.

  1. 콘솔 에러: return posts.get(id + ' ')로 변경함으로써 에러가 없어지는 케이스는, 단순히 URL과 id를 문자열로 취급하여 에러를 피한 것입니다. 그러나, 좋은 해결책은 아니므로 적절한 URL 합성 방식을 사용하시길 추천합니다.

  2. Axios URL 구성 확인: axios 요청 내에서 URL의 형식을 다시 한번 점검해보는 것도 중요합니다. 흔히 발생하는 실수로는, baseURL이 정의되어 있지 않거나 잘못 정의된 경우가 있습니다.

추가 자료

이와 유사한 문제 및 해결 방법에 대한 기존 게시물을 참고해 보시면 도움이 될 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

질문드립니다.

0

32

0

unplugin-vue-components 질문드립니다.

0

37

2

강의듣다가 헷갈려서 질문드립니다.

0

31

1

와 짐코딩님 강의 들으면서 느끼는게 많네요.

0

32

1

질문드립니다.

0

32

2

라우터 인스톨 후 실행안됨

1

49

2

코드 자동 포매팅 질문

0

68

2

필터 watchEffect 질문입니다.

0

50

1

json-server 오류가 다른게 뜨네요

0

113

1

미리보기가 안됩니당...

0

69

2

unplugin-vue-components

0

81

2

v-model="show" :show="show" 같이 사용?

1

57

1

hash 모드 배포의 필요성?

0

61

2

.eslintrc.cjs 가 없습니다

0

95

2

title,content값이 비어서 저장되는데 제가 혹시 어떤 부분을 잘못 작성했는지 ㅜㅜ 알고싶습니다.

0

98

3

_title_like: "", 문의드려요 해당 값을 설정하면 list가 아에 안나옵니다.

0

64

1

@click.prevent="params._page = pageNum"> 에 .value를 안쓰는 이유가 궁금합니다.

0

71

2

중첩된 컴포넌트 문제

0

75

2

교안에 있는 부분이 아닌가요?

0

109

2

useAxios Proxy(Object) RefImpl

0

113

1

axios timeout

0

328

3

강의와 상관은 없지만, 궁금한 점이 있어 질문드립니다.

0

122

2

컴포넌트 분리 부분에서 오류가 나요ㅠㅠ

0

167

2

This dependency was not found:

0

140

2