답변:
브라우저가 ajax 요청에 대한 리디렉션 응답을 받으면 어떻게됩니까?
서버가 리디렉션 (일명 302 응답과 Location : 헤더)을 보내면 리디렉션 다음에 브라우저가 자동으로 나타납니다. 두 번째 요청에 대한 응답 (다른 리디렉션이 아니라고 가정)은 프로그램에 노출 된 것입니다.
실제로 302 응답이 발생했는지 여부를 감지 할 수 없습니다. 302 리디렉션이 200으로 연결되면 프로그램은 원래 요청이 200으로 직접 연결된 것처럼 동일하게 작동합니다.
이것은 나의 경험이자 스펙에 명시된 행동 이었다.
2016 업데이트 : 시간이 지났으며 좋은 소식은 새로운 fetch () API 가 XHR과 비슷한 기본 동작으로 리디렉션이 처리되는 방식을보다 세밀하게 제어 할 수 있도록 지정 되었다는 것입니다 . 즉, fetch ()가 기본적으로 구현되는 곳에서만 작동합니다 . XHR을 기반으로하는 fetch ()의 폴리 필 버전 에는 XHR의 한계가 계속 있습니다 . 다행히도 기본 브라우저 지원 은 훌륭하게 마무리됩니다.
는 ajax-request
그 리디렉션 AFAIK을 따릅니다. 실제 콘텐츠 ( .responseText
, .responseXML
)는 리디렉션 된 페이지의 콘텐츠입니다.
2 또는 3 에서 리디렉션 ( status-code
, location-header
) 을 가로 챌 수 readyState
있지만 확실하지는 않습니다.
getAllResponseHeaders()
같습니다.