>웹 프론트엔드 >JS 튜토리얼 >Ajax 도메인 간 액세스란 무엇입니까?

Ajax 도메인 간 액세스란 무엇입니까?

(*-*)浩
(*-*)浩원래의
2019-05-22 19:21:046633검색

AJAX 교차 도메인 액세스는 사용자가 웹사이트 A를 방문할 때 웹사이트 B에 대한 모든 교차 도메인 액세스 요청이 웹사이트 A의 지정된 페이지로 제출된다는 의미입니다. 즉, Ajax는 대상 주소가 로컬이 아닌 도메인(프로토콜, 도메인 이름, 포트가 모두 다름)인 웹 리소스를 요청하고 응답을 기반으로 외부 애플리케이션 데이터를 얻습니다.

Ajax 도메인 간 액세스란 무엇입니까?

Ajax는 대상 주소가 로컬이 아닌 도메인(프로토콜, 도메인 이름 및 포트가 다름)인 웹 리소스를 요청하고 응답을 기반으로 외부 애플리케이션 데이터를 얻습니다. 예를 들어 Ajax를 사용하여 도시 일기 예보 및 IP 주소와 같은 공공 서비스 인터페이스에 액세스할 때 크로스 도메인이 포함됩니다. 외부 서비스를 요청하면 브라우저는 보안 문제에 따라 승인된 액세스를 거부합니다.

스크립트, 스크립트 및 iframe 태그의 src 속성에는 도메인 간 문제가 없으므로 Ajax 크로스 도메인은 이를 사용하고 JS의 JSON 지원은 외부 서비스에서 JS 코드 또는 JSON 데이터에만 응답하면 됩니다. Ajax 요청은 Ajax에서 얻을 수 있습니다.

보안상의 이유로 클라이언트 js는 xmlhttprequest만 사용하여 소스 웹사이트에 요청을 보낼 수 있습니다. 예를 들어 www.readlog.cn의 test.readlog.cn에서 데이터를 요청할 수 없습니다. 그러나 많은 솔루션이 있습니다. 여기서 정리해보자.

해결 방법 1 웹 프록시 방법(서버 A)

이 페이지는 사용자 페이지를 대체하여 상호 작용을 완료하고 이에 따라 적절한 결과를 반환합니다. 이 솔루션은 이 단계에서 상상할 수 있는 대부분의 도메인 간 액세스 문제를 해결할 수 있지만 웹 사이트 A가 웹 프록시 지원을 제공해야 합니다. 따라서 웹 사이트 A와 웹 사이트 B는 긴밀하게 협력해야 하며 각 상호 작용 프로세스는 서버입니다. 웹 사이트 A 부담이 커지고 사용자를 대신하여 세션 상태를 저장할 수 없습니다.

해결 방법 2. 주문형 방식(서버 A)

MYMSN의 포털에서는 이 방식을 사용하지만 MYMSN에는 도메인 간 액세스 문제가 없습니다. 페이지 내에서 새로운

을 생성합니다. 해결 방법 3. iframe 메서드(서버 A)
교차 도메인 액세스에 대한 게시물을 JavaEye에서 확인했는데, 그는 iframe을 사용하여 이를 해결했다고 언급했습니다. 데이터 제출 및 획득을 위해 iframe을 사용하는 것은 실제로 가능하지만 상위 창과 하위 창이 상호 작용할 수 없기 때문에(도메인 간 액세스의 경우 이 상호 작용이 거부됨) 상위 창에 대한 효과가 완료될 수 없습니다.
페이지에 삽입하거나 다른 웹사이트를 가리키는 IFRAME을 동적으로 생성하면 두 웹페이지가 서로의 앵커 해시 조각을 변경하여 메시지를 전송할 수 있습니다. 웹페이지의 앵커 해시 조각을 변경해도 브라우저가 웹페이지를 다시 로드하지 않으므로 웹페이지의 상태는 유지되며 웹페이지 자체에서 타이머(타이머)를 통해 앵커 해시의 변경 사항을 감지할 수 있으며, 따라서 그에 따라 자체 앵커 해시 조각을 변경합니다.

해결 방법 4. 사용자 로컬 덤프 방법(로컬)
Windows 플랫폼에 연결된 IE 자체의 특성은 iframe 기반 솔루션을 제공하고 메모리를 사용하여 두 창 사이를 "우회"하는 솔루션을 제공합니다. Windows 클립보드를 통해 클라이언트에 전송됩니다. 폴링을 위해 데이터를 수신하는 측에서만 간격을 설정하고 결과를 얻은 후 간격을 지우면 됩니다. FF의 플랫폼 독립성으로 인해 클립보드 방식을 지원하지 않는 것으로 판단되며, 이전 FF 버전의 플러그인 취약점도 수정되어 FF가 메모리를 통한 비밀 교차를 완료할 수 없습니다. 그리고 FF는 파일 작업을 지원하지 않기 때문에(쿠키를 통한 도메인 간 데이터 전송이 완료되지 않음) 이러한 기술적 방법은 IE에서만 사용할 수 있습니다.

해결책 5: (실제로 서버 A에서 iframe을 사용하면 서버 B와의 통신 문제가 해결됩니다.)
해결해야 할 문제: 사용자가 웹 페이지 URL(태그, 메모 등 포함)을 제출할 때 발생합니다. .) 북마크 서버로 .
URL을 제출하는 방법은 최소한 세 가지가 있습니다.
1. 북마크 서버의 제출 페이지에 로그인하고 이 페이지를 통해 서버에 수집할 URL을 제출합니다.
2. 브라우저 플러그인을 설치하고 플러그인을 통해 서버에 URL을 제출합니다.
3. 북마크 서버에서 현재 페이지로 자바스크립트 가젯을 동적으로 로드하고 이를 사용하여 제출 작업을 완료합니다.

첫 번째 방법이 가장 개발하기 쉽지만 사용자에게는 제출을 완료하기 위해 매번 북마크 서버에 로그인해야 하기 때문에 두 번째 방법은 플러그인 개발에 익숙하지 않습니다. 브라우저에 플러그인이 너무 많이 쌓이는 것을 좋아하지 않는 세 번째 방법은 개발하기 쉽고 매번 서버에 로그인하는 번거로움을 피할 수 있어서 마침내 채택했습니다. 사용자가 정보(URL, 태그, 메모 등)를 입력할 수 있는 UI를 생성하는 것 외에도 세 번째 방법의 동적으로 로드되는 자바스크립트 가젯은 사용자가 제출을 클릭할 때 서버와 통신하는 기능도 완료해야 합니다.

위 내용은 Ajax 도메인 간 액세스란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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