2017-04-14 2 views
2

axios를 사용하여 API에 객체를 보내는 방법이 있습니까?Axios를 사용하여 객체를 보내려면 어떻게해야합니까?

코드 나 사용이 다음은 PHP 측

axios.get('/api/phones/create/', { 
    parameters: { 
     phone: this.phone 
    } 
}) 
    .then(response => { 
     console.log(response.data) 
    }) 
    .catch(function (error) { 
     console.log(error) 
    }) 

, 나는 다음과 같은 한 :

public function create($phone) 
{ 
    return $phone; 
} 

나는 다음과 같은 오류 얻을 :

GET http://crm2.dev/api/phones/create 500 (Internal Server Error) 
dispatchXhrRequest @ app.6007af59798a7b58ff81.js:256 
xhrAdapter @ app.6007af59798a7b58ff81.js:93 
dispatchRequest @ app.6007af59798a7b58ff81.js:662 
app.6007af59798a7b58ff81.js:2266 Error: Request failed with status code 500 
    at createError (app.6007af59798a7b58ff81.js:600) 
    at settle (app.6007af59798a7b58ff81.js:742) 
    at XMLHttpRequest.handleLoad (app.6007af59798a7b58ff81.js:158) 

내가 만약을 시도, axios.get('/api/phones/create/hello') 콘솔 로그에 hello가 나타납니다.

이 방법이 있습니까?

+1

나는 잘 모르겠지만,'요청이 500' 상태 코드로 실패가 오류의 – Leguest

+0

부분은 PHP 방법에 참이었다 서버 측 문제가 말한다 : 나는 대신에 이런 짓을 :'공공 기능은 생성 (요청 $ 요청) ' – Warrio

답변

3

"개체 보내기"의 의미에 따라 다릅니다.

GET 요청을 사용하고 매개 변수에서 개체를 전달하기 때문에 GET 요청의 일부로 쿼리 매개 변수로 직렬화 할 수 있습니다. 이것은 실제로 객체를 보내지는 않지만 GET 요청을위한 url의 질의 섹션을 만들기 위해 더 많이 사용합니다. 당신이 POST 또는 PUT 요청을 사용할 수 있습니다

axios.get('/api/phones/create/', { 
    params: { 
     phone: '123' 
    } 
}) 

당신이 실제로 당신의 API에 직렬화 된 JSON으로 객체를 보내려면

:

예를 들어, 여기 당신이 /api/phones/create?phone=123에 요청을 할 수있는 방법 api의 의미에 따라 다릅니다.

예를 들어, API에 { "phone": "123" }을 보내, 당신은 할 수 :

axios.post('/api/phones/create/', { 
    phone: '123' 
}); 

을 : Axios의 매개 변수의 키 params를 기대하고있다.

+0

고맙습니다. 보내진 매개 변수가 요청의 일부라는 사실을 잊었습니다. 추신 : 전화를 생성하기 위해 기본 데이터를 가져 오기 위해 GET 요청을 사용하고 있습니다. store 메소드에서 POST 요청을 사용합니다. 이것은 완벽하게 작동합니다. 감사합니다. – Warrio

+1

@Warrio 문제가없는 친구, 도와 줘서 기쁩니다 :) – nem035

1

우선 parameters 대신 params으로 시도하십시오.

Axios는 약속을 따릅니다. 이전 브라우저를 지원하려면 코드에 add promise polyfill이 필요합니다.

자세한 내용은 샘플 요청 인 Read official docs을 참조하십시오.

axios.get('/url', { 
    firstName: 'Fred', 
    lastName: 'Flintstone' 
    }) 
    .then(function (response) { 
    console.log(response); 
    }) 
    .catch(function (error) { 
    console.log(error); 
    }); 
관련 문제