Open eotkd4791 opened 3 years ago
TIL 구경하다가 잘못된 부분이 있는 것 같아서 글 남기고 갑니다~
작동 방식
XMLHttpRequest는 동기/비동기 2가지 방식을 지원합니다. 기본값으로는 동기(Synchronous) 방식으로 작동하며, open 메소드의 세번째 인자로 true를 설정하면 비동기(Asynchronous) 방식도 지원합니다.
대상님이 작성하신 부분인데, open 메소드의 세번째 인자는 디폴트값이 true이고 동기 방식을 지원한다는 표현이 맞지 않을까요? 밑에는 디폴트가 비동기라고 작성하셨네요!
request 함수가 디폴트가 동기이면 매우 위험한 상황일 것 같아요~~
지난번 오프라인에서 디폴트가 동기다라고 말씀하신 것 같아서 착각하고 계실까봐 댓글 남깁니다
TIL 구경하다가 잘못된 부분이 있는 것 같아서 글 남기고 갑니다~
작동 방식
XMLHttpRequest는 동기/비동기 2가지 방식을 지원합니다. 기본값으로는 동기(Synchronous) 방식으로 작동하며, open 메소드의 세번째 인자로 true를 설정하면 비동기(Asynchronous) 방식도 지원합니다.
대상님이 작성하신 부분인데, open 메소드의 세번째 인자는 디폴트값이 true이고 동기 방식을 지원한다는 표현이 맞지 않을까요? 밑에는 디폴트가 비동기라고 작성하셨네요!
request 함수가 디폴트가 동기이면 매우 위험한 상황일 것 같아요~~
지난번 오프라인에서 디폴트가 동기다라고 말씀하신 것 같아서 착각하고 계실까봐 댓글 남깁니다
잘못된 부분 짚어주셔서 너무 감사합니다 ! 수정하였습니다!!
XMLHttpRequest
# XMLHttpRequest 란?
XMLHttpRequest
는 브라우저 내에 탑재되어 있는 http 통신을 위한 객체입니다. XML이라는 이름을 가지고 있지만 XML 이외에도 다른 형식의 데이터와도 함께 작동합니다.최근에는 Promise 기반으로 작동하는
fetch API
를 많이 사용하는 추세입니다.XMLHttpRequest
는 오래된 브라우저를 polyfill을 추가하지 않고 지원하기 위해서 주로 사용됩니다.# 작동 방식
XMLHttpRequest
는 동기/비동기 2가지 방식을 지원합니다. 기본 동작은 비동기(Asynchronous) 방식으로 작동합니다.open
메소드의 세번째 인자를 false를 설정하면 동기(Synchronous) 방식도 지원합니다. Default는 true (Asynchronous)입니다.# 응답 타입
# 사용 방법
i) Http Request 전송하기
ii) Response에 대한 이벤트 리스너 설정
iii) Response에 대한 타임아웃 설정
iv) Response에 대한 type 설정
v) URL에 querystring 삽입
문자열로 조합하는 것이 일반적인 경우이지만, URL 객체를 활용한 방법도 있다.
vi) readyState
xhr는 http 통신의 진행에 따라 상태가 변하는데 이러한 상태는
xhr.readyState
로 접근할 수 있다.vii) Request 취소하기
viii) Request Header 설정하기
ix) Cross-Origin Request
# 주의사항
open
인 것은 연결이 열린다는 의미가 아니다. 이 메소드는 요청의 설정을 하는 역할을 한다.send
메소드 이후에 감지된다.