let axios = axios({
url: "./food.json", // 호출할 서버의 경로
method: "get", // 사용하는 http method(post, get, put, delete)로 default는 get
params: {
name: "hong"
}, // url 즉 쿼리스트링을 구성하는 파라미터 요소(get, delete, put에서 사용)
data: {
age: 10,
addr: "seoul"
}, // request body를 통해서 서버로 전송되는 값(post, put, patch에서 사용)
headers: {'X-Requested-With': 'XMLHttpRequest'}, // 사용자 지정 헤더
});
get, delete, put에서 사용하는params는 따로 선언하지 않고url에 query string으로 붙여도 무관하지만 params를 활용하는 것이 여러 상황에서 조금깔끔하긴 하다.
data즉 requestbody로 전달되는 값은그냥 JSON을 사용하면 된다. fetch api에서는 JSON.stringify로 직렬화 해야 하는데 좀 더 편해졌다.
응답 객체
응답 객체는 요청이 성공했을 때 then 콜백에 전달되는 객체이다. 이 객체는 다음과 같은 주요 속성을 갖는다.
{
// 서버가 출력한 값은 언제나 data 속성 안에 존재한다.
data: {},
// HTTP status code
status: 200,
// HTTP status message from the server response
statusText: 'OK',
// `headers` the headers that the server responded with All header names are lower cased
headers: {},
// `config` is the config that was provided to `axios` for the request
config: {},
}
역시나 가장 중요한 정보는서버에서 응답한 데이터가 담긴 data 속성이다. fetch는 서버의 응답을 다시 toJson() 등의 메서드로 변환해서 사용해야 하는데 역시 훨씬 간단하다.
이제 jsonplaceholder에서 제공하는 api를 이용해서 ajax 호출을 테스트 해보자.