javascript jsonp 예제

서버 측 코드는 동일한 원본 정책에 구속되지 않으며 문제 없이 원본 간 요청을 수행할 수 있습니다. 따라서 일종의 프록시를 만들고 필요한 데이터를 검색하는 데 사용할 수 있습니다. 우리의 첫 번째 예에 대한 참조 : 안녕하세요, 좋은 깨끗한 튜토리얼 주셔서 감사합니다. 나는 JSONP에 새로운 종류의 당신이 설명 할 수 있습니다, 나는 예를 들어 foo (//json 여기)와 json 콘텐츠를 래핑 JSON 파일을 수정해야합니까; 그런 다음 콜백 = foo. 이것이 해결될 수 있는 유일한 방법이었습니다. 어느 쪽이든 나는 그것이 단지 내가 eval 함수에 전달하더라도, 작동하지 않습니다 일반 json을 둡니다. 일반 웹 페이지는 XMLHttpRequest 개체를 사용하여 원격 서버에서 데이터를 보내고 받을 수 있지만 동일한 원본 정책으로 수행할 수 있는 작업으로 제한됩니다. 이는 브라우저 보안 모델에서 중요한 개념이며 웹 브라우저에서 이 두 페이지의 출처가 동일한 경우 페이지 A의 스크립트만 B 페이지의 데이터에 액세스하도록 허용할 수 있습니다. 페이지의 출처는 프로토콜, 호스트 및 포트 번호로 정의됩니다. 예를 들어 이 페이지의 출처는 `https`, `www.sitepoint.com`, `80`입니다. 좋아, 좋아, 나는 위키 백과에서 그것을 얻을 수 있습니다. 우리는 더 읽기 더글러스 크록 포드를 추가 읽기 : JSON 피터 반 데르 지 소개 : 안전 jsonp 부분에 대한 제안 1, 2 부 카일 심슨 : 더 안전한 JSON-P 매트 해리스 정의 : 트위터 API ECMA-262 5 판 15.12 : JSON 객체 지금, JSON 객체 () 나를 위해 매우 안전, eval ()보다 훨씬 안전합니다. 제3당이 그 반응으로 악한 일을 할 수 있는 예를 보여줄 수 있을까요? (이 질문은 베드로와 대답 할 수있는 사람을 대상으로합니다).

별도의 브라우저 창에서 위의 JSONP 예제의 출력을 봅니다. 예를 들어 JSONP는 도메인 간 GET 요청만 수행할 수 있으며 서버는 명시적으로 이를 지원해야 합니다. JSONP는 또한 보안 문제가 없는 것은 아니므로 다른 해결책을 간단히 살펴보겠습니다. 기사 주셔서 감사합니다. http://www.briangrinstead.com/blog/safe-jsonp 다음 예제에서는 John Resig (jQuery 작성자)에 대 한 사용자 정보를 가져옵니다 및 logResults 콜백 함수를 사용 하 여 콘솔에 대 한 응답을 기록 하 고 있습니다. 위의 예제에서는 스크립트 태그를 넣은 위치에 따라 페이지가 로드될 때 “myFunc” 함수를 실행합니다. (업데이트 : 브라이언 그린스테드와 호세 안토니오 페레즈의 제안에 나는 동시 스크립트 로드를 지원하기 위해 유틸리티를 조정) 다음은 몇 가지 사용 예입니다…. 다행히도 모든 것이 동일한 원산지 정책의 영향을 받는 것은 아닙니다.

예를 들어 다른 도메인의 이미지 나 스크립트를 페이지에 로드할 수 있습니다.이 방법은 CDN에서 jQuery(예: )를 포함할 때 수행하는 작업입니다. 일반적으로 이 정책에 따르면 프로토콜(예: http), 포트 번호(예: 80) 및 호스트(예: example.com)가 데이터가 요청되는 위치와 다른 경우 허용해서는 안 됩니다. 또한 JSONP를 통해 다양한 서비스에서 다양한 콘텐츠를 끌어들일 수 있습니다. 많은 유명 사이트는 미리 정의된 API를 통해 콘텐츠에 액세스할 수 있도록 JSONP 서비스(예: 플리커)를 제공합니다. 프로그램 가능한 웹 API 디렉터리에서 포괄적인 목록을 찾을 수 있습니다. 저는 카일과 베드로의 주장에 동의합니다. 다음은 몇 가지 문제를 해결할 수 있는 경량 JSONP 프레임워크입니다. fucntion evalJSONP는 클로저를 사용하여 사용자 지정 콜백을 응답 데이터에 바인딩하는 콜백 래퍼입니다. 사용자 지정 콜백은 모든 범위에서 사용할 수 있으며 다음 예제와 같이 즉석에서 만든 익명 함수일 수도 있습니다.

evalJSONP 래퍼는 JSON 응답이 유효한 경우에만 콜백이 호출되도록 합니다. 그러나이 방법은 단점이 있습니다. 예를 들어 타사 사이트에서 인증을 위해 쿠키를 사용하는 경우 이 작업은 작동하지 않습니다. 첫 번째 예제를 참조하여 .htaccess 파일(아파치가정)에 다음을 추가하여 다른 출처의 요청을 허용할 수 있습니다.

    Outros serviços