이 글에서는 주로 JSONP 크로스 도메인 구현 방법을 소개하고, JSONP 크로스 도메인의 원리에 대해 논의합니다. JSONP 도메인 간 GET 요청을 사용하여 Ajax 도메인 간 액세스 문제를 해결하는 것 외에도 필요한 친구는
을 참조할 수 있습니다. 며칠 전 직장에 새로운 요구 사항이 있었는데, 이는 전면- 웹 페이지를 종료하여 백그라운드 웹 서비스 메서드를 비동기적으로 호출하여 정보를 반환합니다. 구현 방법은 여러 가지가 있는데, 완료 후 로컬에서 디버깅할 때 문제가 발생했습니다. 백그라운드 서비스 호출이 응답하지 않았습니다. 코드는 많이 변경되지 않았습니다. 유일한 수정 사항은 jQuery의 ajax 메서드의 URL 주소입니다. 이것이 문제인가요? 검사하고 디버깅한 결과 문제를 일으키는 것과 동일한 원본 정책이라는 것을 발견했습니다. JavaScript 또는 jQuery가 웹 프런트엔드 개발에 자주 사용되는 동적 스크립팅 기술이라는 것을 알고 있습니다. JavaScript에는 "Same-Origin Policy"라는 매우 중요한 보안 제한 사항이 있습니다. 이 정책은 JavaScript 코드가 액세스할 수 있는 페이지 콘텐츠에 중요한 제한을 둡니다. 즉, JavaScript는 이를 포함하는 문서 또는 스크립트와 동일한 도메인 이름 아래의 콘텐츠에만 액세스할 수 있습니다. 다른 도메인 이름의 스크립트는 하위 도메인에서도 서로 액세스할 수 없습니다. 동일 출처 정책과 관련하여 독자들은 Baidu에서 더 자세한 설명을 찾을 수 있으며 여기에서는 자세히 다루지 않습니다.
그러나 때로는 크로스 도메인 작업이 불가피할 때도 있습니다. 이때 "동일 출처 정책"은 어떻게 해야 합니까? JSONP 교차 도메인 GET 요청을 사용하는 것은 일반적인 솔루션입니다. JSONP 교차 도메인이 구현되는 방법을 살펴보고 JSONP 교차 도메인의 원리를 살펴보겠습니다.
여기에 JSONP가 언급되어 있는데 JSON과 차이점이 무엇인지 물어보시죠. Baidu Encyclopedia에 다음과 같이 설명되어 있습니다.
JSON( JavaScript Object Notation) 가벼운 데이터 교환 형식입니다. 이는 JavaScript(표준 ECMA-262 3판 - 1999년 12월)의 하위 집합을 기반으로 합니다. JSON은 완전히 언어 독립적인 텍스트 형식을 사용하지만 C 언어 계열(C, C, C#, Java, JavaScript, Perl, Python 등 포함)과 유사한 규칙도 사용합니다. 이러한 속성은 JSON을 이상적인 데이터 교환 언어로 만듭니다. 사람이 읽고 쓰기가 쉽고, 기계가 파싱하고 생성하기도 쉽습니다(네트워크 전송 속도가 빠릅니다).