2017-11-01 2 views
0

액시스를 사용하여 API에 게시하고 있으며 응답의 데이터를 사용하여 다른 API 요청을 만들고 싶지만 그 메시지는 axios is not defined입니다.새 액시스 요청 응답

this.axios({ 
    method: 'post', 
    url: '/my_api/test', 
    data: "testdata=test123", 
    headers: { 
    'Content-Type': 'application/x-www-form-urlencoded' 
    } 
}) 

.then(function (response) { 
    this.axios({ 
    method: 'get', 
    url: '/my_api/test2', 
    data: "testdata2=" + response.data.id 
    }) 
}) 

을하고 앞에서 언급 한 바와 같이, 내 콘솔의 오류는 다음과 같습니다 : 내 뷰 로그인 구성 요소 내부에있는

호출은 다음과 같다 TypeError: Cannot read property 'axios' of undefined.

나는 this.없이 두 번째 요청을 작성하려고했지만 동일한 문제가 있습니다. 내가 어디로 잘못 가고 있니?

답변

1

여기에 arrow function을 사용해야합니다.

일반 함수의 값은 this입니다. 당신은 당신이 콜백에에 액세스 할 수 있도록 몇 가지 변수에 this 참조를 저장할 수 있습니다 옛날 방식으로 선호하는 경우

this.axios({ 
    method: 'post', 
    url: '/my_api/test', 
    data: "testdata=test123", 
    headers: { 
    'Content-Type': 'application/x-www-form-urlencoded' 
    } 
}) 

.then(response => { 
    this.axios({ 
    method: 'get', 
    url: '/my_api/test2', 
    data: "testdata2=" + response.data.id 
    }) 
}) 

는 또는 :

const self = this 

this.axios({ 
    method: 'post', 
    url: '/my_api/test', 
    data: "testdata=test123", 
    headers: { 
    'Content-Type': 'application/x-www-form-urlencoded' 
    } 
}) 

.then(function (response) { 
    self.axios({ 
    method: 'get', 
    url: '/my_api/test2', 
    data: "testdata2=" + response.data.id 
    }) 
}) 
+0

최고를,이 잘 작동합니다. 고맙습니다! – djur999