programing

Ajax(fetch, XHR 등) 요청에 대한 응답으로 리다이렉트 반환

iphone6s 2023. 2. 21. 23:33
반응형

Ajax(fetch, XHR 등) 요청에 대한 응답으로 리다이렉트 반환

브라우저가 Ajax 요구에 대한 리다이렉트 응답을 수신하면 어떻게 됩니까?

브라우저가 Ajax 요구에 대한 리다이렉트 응답을 수신하면 어떻게 됩니까?

서버가 리다이렉트(일명 302 응답 + Location: 헤더)를 송신하면, 리다이렉트는 자동적으로 브라우저에 이어집니다.번째 요청에 대한 응답(다른 리디렉션도 아닌 경우)은 프로그램에 노출됩니다.

실제로 302 반응이 발생했는지 여부를 탐지할 수 없습니다.302 리다이렉트가 200으로 연결되는 경우 프로그램은 원래 요구가 200으로 직접 이어지는 것과 동일하게 동작합니다.

이것은 저의 경험이자 스펙에 기재된 행동입니다.

2016년 업데이트:시간이 지났습니다.좋은 소식은 새로운 fetch() API가 XHR과 유사한 기본 동작으로 리다이렉트 처리 방법을 세밀하게 제어하도록 지정되었다는 것입니다.즉, fetch()가 네이티브로 실장되어 있는 경우에만 동작합니다.Fetch()의 폴리필 버전(XHR에 기반)은 XHR의 제한을 계속 받습니다.다행히 네이티브 브라우저 지원은 잘 마무리되고 있는 것 같습니다.

ajax-request리다이렉트 후크를 따라갑니다.실제 내용(.responseText,.responseXML)는, 리다이렉트 되는 페이지의 컨텐츠가 됩니다.

리다이렉트를 대행 수신할 수 있는 경우가 있습니다(status-code,location-header)에 대해서readyState2, 3개인데 잘 모르겠어요.

TLDR: 이 기능은fetch.
자세한 내용은 이쪽:https://github.com/axios/axios/issues/932#issuecomment-515229573

언급URL : https://stackoverflow.com/questions/282429/returning-redirect-as-response-to-ajax-fetch-xhr-etc-request

반응형