이 글은 주로 JAVA 백엔드를 호출하는 Ajax 크로스 도메인(jsonp)에 대한 자세한 설명을 소개합니다. 편집자는 꽤 좋다고 생각해서 지금 공유하고 참고용으로 제공하겠습니다. 편집기를 따라 살펴보겠습니다
1. JSONP 정의
JSONP는 Padding이 포함된 영어 JSON의 약어이며 비공식 프로토콜입니다. 이를 통해 서버 측에서 스크립트 태그를 생성하고 클라이언트에 반환할 수 있으므로 javascript 콜백 형식으로 사이트 액세스가 가능해집니다. JSONP는 서버에서 반환한 응답을 페이지에 추가하여 특정 기능을 구현하는 스크립트 태그 삽입입니다.
2. JSONP의 기원
JSONP의 기원을 설명하기 위해 먼저 브라우저의 “SOP: Same Origin Policy”에 대해 이야기해 보겠습니다. 즉, 브라우저는 스크립트 프로그램이 동일한 프로토콜, 동일한 도메인 이름 및 동일한 포트의 스크립트와만 상호 작용하도록 제한합니다. 여기에는 변수 공유 및 전달 등이 포함됩니다. 쿠키 전달에도 동일한 정책이 적용됩니다. 이로 인해 여러 서버가 포함된 애플리케이션을 통합할 때 몇 가지 문제가 발생합니다. 도메인 간 액세스 문제로 인해 A 사이트의 Ajax 코드가 B 사이트의 데이터에 액세스할 수 없습니다.
도메인 간 액세스를 해결하는 방법은 무엇입니까? 그런 다음 브라우저의 기능을 활용해야 합니다. 브라우저는 페이지의 스크립트가 도메인 전체의 데이터를 읽는 것을 허용하지 않지만 HTML이 이미지, CSS 및 스크립트와 같은 도메인 간 리소스를 참조할 수 있도록 허용합니다. 스크립트 프로그램에 대한 참조는 브라우저에서 구문 분석된 후 로컬 스크립트 프로그램과 동일하며 즉시 해석되고 실행될 수 있습니다. 예를 들어 사이트 B의 js 파일에는 간단한 프롬프트 상자인 Alert ("This is Victor!");가 있습니다. A 사이트에서 이 js를 참조하면 B 사이트의 애플리케이션에서 이 스크립트가 실행되고 경고 메시지가 표시됩니다. 오프사이트 스크립트의 참조는 스크립트 태그를 통해 구현되고 스크립트 프로그램은 DOM을 통해 HTML 페이지의 모든 태그(동적으로 생성되는 스크립트 태그 포함)를 제어할 수 있으므로 이는 오프사이트 프로그램을 호출하여 달성할 수 있습니다. 지역 자원에. 또한