Content-Type이란 쉽게 말해서 body로 보내는 데이터의 타입을 정해주는거다.
php 서버에 요청을 보내야 했는데, 기존에는 json 형태 로 보내야했다.
"Content-Type": `application/json`
그러나 실습 서버에는 form 형태로 보내주어야했다. 이것을 몰라서 조금헤맸다.
headers: { "Content-Type": `application/x-www-form-urlencoded`, // x-www-form-urlencoded 타입 선언 },
하지만 아래처럼 데이터를 보냈지만 원하는 응답을 받을 수는 없었다. 요청은 200으로 성공했다.
왜 그랬을까?
그 이유는 데이터를 보내는 타입인 FormData로 보냈어야했다.
아래와 같은 코드로 보낼 수 있었다.
그리고 method, url, headers, data 이런식으로 명시해주는게 가독성 측면에서 더 좋은 코드이다.
FormData 타입에 대해 좀 더 공부했다. 이는 key=value&key=value 형태인데,
아래와 같이 수정할 수 있다.
오픈채팅방에서 조언을 얻었다. 정말 감사합니다..
{a:1,b:2} 라는 객체를 json 화 하면 {"a":1,"b":2} 가 된다. ( JSON.stringify )
'Content-Type': 'application/json'
위 코드를 Content-Type으로 정하면 json화 되어 전달 되는 것이다.
즉, header의 컨텐트타입에 따라서 저 data 의 문자열의 모습이 달라지게 된다.
{a:1,b:2}는 www-form 화 하면 a=1&b=2가 되고
headers: { "Content-Type": `application/x-www-form-urlencoded`, // x-www-form-urlencoded 타입 선언 },
위 코드를 Content-Type으로 정할때의 데이터 문자열 모습이다.
정말 많이 배웠다.
'공부기록 > 바닐라 자바스크립트' 카테고리의 다른 글
var, let, const 그리고 호이스팅 (0) | 2022.07.04 |
---|---|
함수 바인딩 (0) | 2022.07.04 |
메서드와 this (0) | 2022.07.04 |
[프로그래머스/JS] 나누어 떨어지는 숫자배열 (0) | 2022.06.17 |
자바스크립트 특정 위치로 이동하기 (0) | 2022.06.16 |