jsonp callback 예제

클라이언트 측에서 콜백 함수를 지정하는 끝점을 로드합니다: 콜백 함수는 JSON 데이터를 수신하는 전역이어야 합니다. URL 의 끝에 jQuery가 JSON 대신 JSONP 요청을 처리하고 있음을 알려줍니다. 그런 다음 jQuery는 요청이 다시 실행될 때 호출하는 콜백 함수를 자동으로 등록합니다. 때로는 서버 파일매개 변수로 콜백 함수를 제공합니다: 위의 예제에서는 스크립트 태그를 넣은 위치에 따라 페이지가 로드될 때 “myFunc” 함수를 실행합니다. jQuery는 JSONP 의 모든 복잡한 측면을 처리합니다 – 우리가해야 할 일은 JQL (이 경우 “콜백”)에 의해 지정된 JSONP 콜백 매개 변수의 이름을 jQuery에게 알려주기만하면 전체 프로세스가 정상적인 Ajax 요청처럼 보이고 느껴집니다. 서버 측 코드는 동일한 원본 정책에 구속되지 않으며 문제 없이 원본 간 요청을 수행할 수 있습니다. 따라서 일종의 프록시를 만들고 필요한 데이터를 검색하는 데 사용할 수 있습니다. 첫 번째 예제: 일반적으로 이 정책에 따르면 프로토콜(예: http), 포트 번호(예: 80) 및 호스트(예: example.com)가 데이터가 요청되는 위치와 다른 경우 허용해서는 안 됩니다. 1 단계 – 콜백 함수를 만들어야합니다. 함수는 일부 데이터를 허용합니다. 다음과 같은 코드 : 그러나이 방법은 단점이 있습니다. 예를 들어 타사 사이트에서 인증을 위해 쿠키를 사용하는 경우 이 작업은 작동하지 않습니다.

이 예제에서는 URL에 있는 JSON 파일이 http://www.demo.yogihosting.com/jquery/jsonp/data.json 일반 웹 페이지는 XMLHttpRequest 개체를 사용하여 원격 서버에서 데이터를 보내고 받을 수 있지만 수행할 수 있는 작업으로 제한됩니다. 동일한 원원 정책에 의해. 이는 브라우저 보안 모델에서 중요한 개념이며 웹 브라우저에서 이 두 페이지의 출처가 동일한 경우 페이지 A의 스크립트만 B 페이지의 데이터에 액세스하도록 허용할 수 있습니다. 페이지의 출처는 프로토콜, 호스트 및 포트 번호로 정의됩니다. 예를 들어 이 페이지의 출처는 `https`, `www.sitepoint.com`, `80`입니다. php 파일에 JSON을 전송하여 예제를 동으로 만들고 php 파일이 얻는 정보에 따라 JSON 개체를 반환하도록 합니다. 다음 예제에서는 John Resig(jQuery 작성자)에 대한 사용자 정보를 얻고 logResults 콜백 함수를 사용하여 콘솔에 대한 응답을 기록합니다. 2단계 – 1단계를 매개 변수로 만든 콜백 함수가 포함된 스크립트를 웹 페이지에 포함합니다. 다행히도 모든 것이 동일한 원산지 정책의 영향을 받는 것은 아닙니다.

예를 들어 다른 도메인의 이미지 나 스크립트를 페이지에 로드할 수 있습니다.이 방법은 CDN에서 jQuery(예: )를 포함할 때 수행하는 작업입니다. 또한 JSONP를 통해 다양한 서비스에서 다양한 콘텐츠를 끌어들일 수 있습니다. 많은 유명 사이트는 미리 정의된 API를 통해 콘텐츠에 액세스할 수 있도록 JSONP 서비스(예: 플리커)를 제공합니다. 프로그램 가능한 웹 API 디렉터리에서 포괄적인 목록을 찾을 수 있습니다. 이전 예제에서 어떻게 보일지 살펴보겠습니다. 다음은 jsonCallback 함수에서 원래 JSON 데이터를 래핑하는 업데이트 된 JSON 파일입니다. 서버는 JSONP에 대한 지원이 있어야 합니다(예: Express를 사용하면 Response.jsonp() 메서드를 사용할 수 있지만, 이는 Response.json()과 비슷하지만 JSONP 콜백을 처리합니다: 일부 제3자 API를 사용하면 콜백 함수의 이름을 지정할 수 있습니다. 요청 반환.