>웹 프론트엔드 >JS 튜토리얼 >ajax 및 jsonp 크로스 도메인에 대한 자세한 설명(코드 포함)

ajax 및 jsonp 크로스 도메인에 대한 자세한 설명(코드 포함)

php中世界最好的语言
php中世界最好的语言원래의
2018-03-30 16:54:301442검색

이번에는 ajax 및 jsonp 크로스 도메인(코드 포함)에 대해 자세히 설명합니다. ajax 및 jsonp 크로스 도메인 구현 시 주의 사항은 무엇입니까?

도메인 간 문제가 발생하는 이유는 무엇인가요? - 동일 출처 정책이 있기 때문이죠

동일 출처 정책은 브라우저의 보안 정책입니다. 소위 동일 출처란 요청 URL 주소의 프로토콜이 동일함을 의미합니다.

동일 출처 정책은 주로 브라우저의 보안을 보장하기 위한 것입니다.

동일 출처 정책에 따라 브라우저는 Ajax가 서버 데이터를 얻는 것을 허용하지 않습니다. domains

http://www.example.com/detail.html

교차 도메인 요청:

  • http://api.example.com/detail.html 도메인 이름이 다릅니다

  • http://www.example.com:8080/detail.html 포트가 다릅니다

  • http: //api.example.com:8080/detail.html 도메인 이름과 포트가 다릅니다

  • https ://api.example.com/detail.html 프로토콜과 도메인 이름이 다릅니다

  • https://www.example.com:8080/detail.html 포트와 프로토콜이 다릅니다

기본 개념 of ajax

이 개념을 이해하려면 먼저 동기 상호 작용과 비동기 상호 작용을 알아야 합니다

  • 동기 상호 작용: 클라이언트 브라우징 서버는 서버에 요청을 보내고 서버는 페이지를 반환합니다. 이전 페이지 덮어쓰기를 동기식 상호작용이라고 부릅니다.

  • 비동기식 상호작용: 이는 브라우저가 서버에 페이지를 요청하고, 서버는 데이터를 반환하며, 반환된 데이터는 이전 페이지를 덮어쓰지 않음을 의미합니다. 우리는 이 상호작용 방법을 비동기식 상호작용이라고 부릅니다

Ajax의 주요 응용 시나리오: 페이지는 새로 고침 없이 서버와 동적으로 상호작용할 수 있습니다. 데이터 상호작용

상호작용의 원리

  • 동기식 상호작용의 원리: 어떻게 하는가 브라우저에서 서버에 요청을 보내나요? 하이퍼링크를 클릭하고 양식을 제출하고 브라우저 주소 표시줄에 주소를 입력하면 서버에 요청을 보낼 수 있습니다. 실제로 브라우저는 서버에 요청을 보내는 데 도움이 됩니다

  • 비동기 원칙. 상호 작용: JavaScript는 새로운 기능을 제공합니다. API 인터페이스는 http 요청을 보내는 데 도움이 되고 XMLHttpRequest 개체는 요청을 보내는 데 도움이 됩니다

모든 대화형 작업은 이 개체를 통해 완료되어 서버에서 요청을 보내고 데이터를 수락할 수 있습니다

Ajax 사양 애플리케이션 시나리오

XMLHttpRequest 상호 작용의 4단계

1. XMLHttpRequest 객체 인스턴스화

2. 서버와 상호 작용하려면 서버와의 연결을 열어야 합니다

3 .서버에 데이터를 보내고 서버에 매개 변수 데이터를 보냅니다. 4. 서버에서 반환된 데이터를 수락합니다. 서버에서 변경 사항을 모니터링하면 일부 상태가 반환됩니다. 서버 상태

ajax cross-domain

교차 도메인: 내가 사이트를 방문하고 백그라운드에서 A 페이지로 반환된 다음 이 페이지에서 사이트 B의 리소스에 액세스하고 싶다고 가정해 보겠습니다. 사이트 a. 이는 교차 도메인 효과입니다. 교차 도메인 브라우저에는 보안 제한이 있습니다

솔루션·교차 도메인 방식: jsonp 방식

JSONP, 정식 명칭은 JSON with Padding으로, 교차 도메인 요청 리소스를 해결하기 위한 JSON 형식 기반의 솔루션입니다. 구현의 기본 원칙은 HTML의 <script></script> 요소 태그를 사용하여 JSON 파일을 원격으로 호출하여 데이터를 전송하는 것입니다. a.com 도메인 아래 b.com에 존재하는 JSON 데이터(getUsers.JSON)를 가져오려는 경우:

크로스 도메인 문제를 해결하는 jsonp의 기본 원칙: 브라우저의 동일 출처 제한으로 인해 서로 다른 사이트는 서로 액세스할 수 없지만 빠른 데이터를 얻고 싶은 곳에 일기예보 데이터를 추가하는 등 다른 사이트에서 데이터를 얻고 싶을 때가 있습니다. 그러면 어떻게 해야 할까요?

원리: