찾다
웹 프론트엔드CSS 튜토리얼동일 출처 및 교차 도메인 프런트엔드 인터뷰에 대한 자세한 소개

크로스 도메인은 브라우저의 동일 출처 정책으로 인해 발생합니다. 이는 페이지에서 요청한 URL 주소가 브라우저의 URL 주소와 동일한 도메인에 있어야 함을 의미합니다(즉, 도메인 이름, 포트 및 프로토콜은 동일합니다.) 다음 글에서는 프론트엔드 면접에 꼭 필요한 동일 출처와 크로스 도메인에 대한 관련 정보를 모두 소개해 드렸으니, 필요한 친구들은 참고하시면 됩니다. 그것.

머리말

브라우저의 동일 출처 정책과 교차 도메인 방식도 프런트엔드 인터뷰에서 매우 흔한 문제라는 것은 잘 알려져 있습니다. 이 기사에서는 주로 동일 출처와 교차 도메인에 대해 공유합니다. 프론트엔드 인터뷰에서 만나게 될 도메인 메소드에 대해서는 크로스 도메인 문제에 대해선 별로 할 말이 없습니다.

동일 원본 정책이란 무엇인가요?

동일 원본 정책은 한 소스에서 로드된 문서나 스크립트가 다른 소스의 리소스와 상호 작용하는 방식을 제한하는 데 사용되는 방법입니다. 안전 메커니즘.

동일한 출처란 무엇인가요?

두 페이지의 프로토콜, 도메인 이름, 포트가 동일하면 두 페이지는 동일한 출처입니다. 예: http://www.hyuhan.com/index.html 이 웹사이트의 프로토콜은 http, 도메인 이름은 www.hyuhan.com, 포트는 80(기본 포트), 출처는 다음과 같습니다.

  • http://www.hyuhan.com/other.html: 동일한 소스

  • http://hyuhan.com/other.html: 다른 소스(다른 도메인 이름)

  • https:// www.hyuhan.com /other.html: 다른 소스(다른 프로토콜)

  • http://www.hyuhan.com:81/other.html: 다른 소스(다른 포트)

동일 출처 정책 사용자 정보 보안을 위한 것으로 동일 출처 정책에 의해 제한되는 주요 동작은 다음과 같습니다.

  1. Cookie, LocalStorage, IndexDB를 읽을 수 없음

  2. DOM을 실행할 수 없음

  3. AJAX 요청을 보낼 수 없음

교차 도메인 액세스를 진행하는 방법

교차 도메인 AJAX 요청을 만드는 방법

동일 출처 정책의 제한을 우회하여 교차 도메인 AJAX를 만드는 세 가지 주요 방법이 있습니다. 요청.

JSONP

JSONP는 클라이언트와 서버 간의 도메인 간 통신을 위한 일반적인 방법입니다. 서버에서 json 데이터를 요청하려면 크로스 도메인 <script><p class="jb51code"><br/></script>

window.onload = function() {
    var script = document.createElement(&#39;script&#39;);
    script.src = "http://example.com/callback=test";
    document.appendChild(script);
}
function test(res) {
    console.log(res);
}

src의 콜백 매개변수는 백엔드가 호출해야 하는 콜백 함수의 이름을 설정하는 데 사용됩니다. 서버에서 반환되는 데이터는 다음과 같습니다.


test({
    "name": "小明",
    "age": 24
    })

이러한 방식으로 프런트 엔드는 여러 도메인의 터미널 데이터를 읽을 수 있습니다. 그러나 jsopn은 get 요청만 할 수 있고 post 요청을 보낼 수 없습니다.

WebSocket

WebSocket은 TCP 기반의 새로운 네트워크 프로토콜로 동일 출처 정책을 구현하지 않으며 서버가 지원하는 한 도메인 간 액세스를 허용합니다. 그리고 WebSocket은 Ajax 통신에만 국한되지 않습니다. Ajax 기술에서는 클라이언트가 요청을 시작해야 하고 WebSocket 서버와 클라이언트가 서로 정보를 푸시할 수 있기 때문입니다.

CORS

CORS는 W3C 표준인 Access-Control-Allow-Origin(Cross-Domain Resource Sharing)의 약어입니다. CORS는 브라우저와 서버 모두에서 지원되어야 합니다. 현재 기본적으로 모든 브라우저는 이 기능을 지원합니다. CORS에 대한 서버 측 지원은 주로 Access-Control-Allow-Origin 설정을 통해 수행됩니다. 브라우저가 해당 설정을 감지하면 Ajax 도메인 간 액세스를 허용할 수 있습니다.

document.domain

쿠키는 서버가 브라우저에 기록하는 정보로, 보안상의 이유로 동일한 출처의 웹페이지만 공유할 수 있습니다. 단, 두 웹페이지의 1차 도메인 이름은 동일하지만 헤드폰의 도메인 이름이 다른 경우 document.domain을 설정하여 쿠키를 공유할 수 있습니다.

예를 들어 한 웹페이지의 도메인 이름은 http://w1.example.com/a.html이고 다른 웹페이지의 도메인 이름은 http://w2.example.com/b.html입니다. 동일한 document.domain을 설정하면 이 두 웹페이지는 쿠키를 공유할 수 있습니다.

postMessage API

postMessage() 메서드를 사용하면 다양한 소스의 스크립트가 제한된 방식으로 비동기 방식으로 통신할 수 있어 문서 간, 다중 창 및 도메인 간 메시징이 가능해집니다. postMessage() 함수를 사용하여 메시지를 전달하고, 대상 페이지는 메시지를 수신하기 위해 창의 메시지 이벤트를 수신합니다. postMessage를 사용하면 도메인 전체에서 LocalStorage, IndexDB 및 DOM 데이터를 읽을 수 있습니다.

window.name

브라우저 창에는 window.name 속성이 있습니다. 이는 소스가 동일한지 여부에 관계없이 이전 웹 페이지가 창에 이 속성을 설정하는 한 다음 웹 페이지에서 읽어보세요. 즉, 창(창)의 수명 주기 내에서 창에 의해 로드된 모든 페이지는 window.name을 공유합니다. 각 페이지는 로드된 모든 페이지의 window.name에 대한 읽기 및 쓰기 권한을 갖습니다. . 분명히 이는 도메인 간 액세스를 달성할 수 있습니다.

위 내용은 동일 출처 및 교차 도메인 프런트엔드 인터뷰에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Jamstack의 속도를 숫자로 살펴보십시오Jamstack의 속도를 숫자로 살펴보십시오Apr 15, 2025 am 10:39 AM

사람들은 Jamstack 사이트가 빠르다고 말합니다. 실제 성능 메트릭을 보면 이유를 알아 봅시다! 첫 바이트까지의 시간과 같은 일반적인 메트릭을 다룰 것입니다

실제 CSS 사용자 정의 속성 사용을위한 패턴실제 CSS 사용자 정의 속성 사용을위한 패턴Apr 15, 2025 am 10:34 AM

브라우저 지원이 마침내 우리가 사용할 수있는 곳에 있기 때문에 그들의 힘을 발견하기 위해 CSS 사용자 정의 속성을 가지고 놀았습니다.

Jamstack 도구 및 분류 스펙트럼Jamstack 도구 및 분류 스펙트럼Apr 15, 2025 am 10:31 AM

Jamstack의 멋진 세상이 커지면서 도움이되는 모든 서비스 및 도구 범주가 그 어느 때보 다 중요합니다. 정적 사이트가 있습니다

인터넷 익스플로러를 떨어 뜨리는 비즈니스 사례인터넷 익스플로러를 떨어 뜨리는 비즈니스 사례Apr 15, 2025 am 10:30 AM

Internet Explorer (IE) 11과 다른 모든 주요 브라우저 사이의 거리는 점점 더 큰 틈이 있습니다. 기술적으로 더 이상 사용되지 않는 지원 추가

초점 링의 애니메이션 위치초점 링의 애니메이션 위치Apr 15, 2025 am 10:27 AM

Maurice Mahan은 "포커스 요소에 대한 오버레이를 만들기위한 라이브러리"인 Focus Overlay를 만들었습니다. 그 설명은 당신에게 약간 혼란 스럽습니다.

컨테이너 쿼리를 잊지 말자컨테이너 쿼리를 잊지 말자Apr 15, 2025 am 10:25 AM

컨테이너 쿼리는 항상 CSS에 대한 요청 된 개선 목록의 상단에 있습니다. 일반적인 감정은 컨테이너 쿼리가 있다면 우리는

이미지 관리 서비스 사용을위한 워크 플로 고려 사항이미지 관리 서비스 사용을위한 워크 플로 고려 사항Apr 15, 2025 am 10:20 AM

이미지를 도와 주려는 모든 사이트가 있습니다. 그들은 이미지를 최적화하고 성능을 제공하는 데 도움이됩니다. 그것은 아주 좋은 일입니다. 모든 메트릭으로 이미지는 자원의 주요 슬라이스입니다.

WordPress에서 미리보기로드 애니메이션을 파헤칩니다WordPress에서 미리보기로드 애니메이션을 파헤칩니다Apr 15, 2025 am 10:19 AM

WordPress는 버전 5.0에서 블록 편집기 (일명 Gutenberg)를 다시 배송했으며 WordPress 로고 그리기를 보여주는 Snazzy New Post 미리보기 화면이 있습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는