반응형
VueJS 메서드가 Axios에서 응답을 반환하지 않음
지금 잠시 이것을 알아내려고 노력 중이고, 나는 그것이 간단한 것이라는 것을 알지만, 문제를 알아낼 수 없을 것 같다.출력은{}Axios 응답을 반환하려고 할 때 사용합니다.전부 돌려주지 않을 때axios.post출력은 아무것도 아닙니다.근데 제가console.log콘솔에 정상적으로 표시되는 데이터입니다.그래서 저는 제가 데이터를 올바르게 받고 있다는 것을 알고 있습니다.아래는 제 테스트 코드입니다.제가 뭘 잘못하고 있는지는 모르겠지만, 아이디어를 가지고 계신 분이 계시면 감사하겠습니다.
<template>
<div>
{{ fetch_name('my_name') }}
</div>
</template>
<script>
import axios from 'axios'
export default {
data() {
return {
}
},
methods: {
fetch_name(name) {
return axios.post('example.com/api/names', {custom: 'SELECT name FROM `names` WHERE name = "'+name+'"'}).then(response => {
console.log(response.data[0].name)
return response.data[0].name
})
}
}
}
</script>
고객님의 사례를 위한 솔루션:
<template>
<div>
{{ fetch_name('my_name') && result }}
</div>
</template>
<script>
import axios from 'axios'
export default {
data() {
return {
result: 'Loading...',
}
},
methods: {
fetch_name(name) {
return axios.post('example.com/api/names', {custom: 'SELECT name FROM `names` WHERE name = "'+name+'"'}).then(response => {
console.log(response.data[0].name)
this.result = response.data[0].name;
return response.data[0].name
})
}
}
}
</script>
하지만 이런 식으로 논리를 수정하는 게 좋을 것 같아요.
UI에 제어 이름이 있는 용 솔루션:
<template>
<div>
<input v-model="name">
{{ result }}
</div>
</template>
<script>
import axios from 'axios'
export default {
data() {
return {
name: null,
result: 'Wait for typing',
}
},
watch: {
name(name) {
this.result = 'Loading...';
axios.post('example.com/api/names', {custom: 'SELECT name FROM `names` WHERE name = "'+name+'"'})
.then(response => {
this.result = response.data[0].name;
return response.data[0].name
})
}
},
}
</script>
return response.data[0].name
에서 돌아오지 않다fetch_namepetch name은 투고 즉시 반환됩니다.
필요한 것은 응답을 데이터에 넣은 다음 방법이 아닌 데이터에 바인딩하는 것입니다.투고에 대한 응답이 들어오면 UI 업데이트가 트리거됩니다.
또, 클라이언트측에서 SQL을 송신하는 것은 매우 위험한 것 같습니다.
언급URL : https://stackoverflow.com/questions/50893989/vuejs-method-not-returning-response-from-axios
반응형
'source' 카테고리의 다른 글
| 수정 2.0: 역직렬화된 오류 응답을 얻는 방법.몸 (0) | 2022.08.28 |
|---|---|
| 매크로 값의 문자열화 (0) | 2022.08.28 |
| C++와 Java의 "일반" 유형의 차이점은 무엇입니까? (0) | 2022.08.28 |
| Java: sun.security.provider.certpath.SunCertPathBuilder예외: 요청된 대상에 대한 올바른 인증 경로를 찾을 수 없습니다. (0) | 2022.08.28 |
| Vuex 내 구성 요소가 상태 변경에 반응하지 않음 (0) | 2022.08.28 |