JSONP 분석

2402 단어 jsonp
웹 2.0 의 발전 에 따라 ajax 응용 은 광범 위 한 발전 을 이 루 었 고 ajax 의 광범 위 한 응용 으로 인해 웹 페이지 의 상호작용 이 더욱 우호 적 이 었 다. 그 는 페이지 가 새로 고침 되 지 않 은 상황 에서 요청 을 보 내 고 페이지 정 보 를 처리 하도록 했다.그러나 ajax 는 브 라 우 저 보안 모델 의 동원 정책 에 제한 을 받 아 다른 도 메 인 네 임 서버 와 통신 할 수 없습니다.이때 비공 식 합의 가 제기 되 었 다. JSONP.
동원 정책: 동원 정책 은 한 영역 에서 불 러 온 스 크 립 트 가 다른 영역의 문서 속성 을 가 져 오 거나 조작 하 는 것 을 막 습 니 다.요청 한 URL 의 도 메 인 은 현재 웹 페이지 의 도 메 인 과 같 아야 한 다 는 것 이다.이것 은 브 라 우 저가 서로 다른 원본 에서 온 내용 을 격 리 하여 그것들 간 의 조작 을 방지 하 는 것 을 의미한다.
JSON: JSON 은 브 라 우 저 와 서버 간 에 정 보 를 교환 하 는 경량급 데이터 형식 입 니 다.
JSONP: 전체 이름 은 JSON Width Padding 이 고 글자 그대로 충전 기능 을 가 진 JSON 입 니 다.
JSONP 의 원리: 그 는 페이지 에 < script > 라벨 을 주입 하 는 방식 으로 진행 되 었 으 며, src 속성 형식 은 일반적인 의미 와 차이 가 있 으 며, 반전 함수 와 같은 인자 가 하나 더 생 겼 습 니 다.쓰 는 방법 은 다음 과 같다.
http://www.test.com/jsonp/excJSONP?
callback=funDealJSON
그 중에서 빨간색 을 표시 하 는 부분 은 리 셋 함수 이 고 'excJSONP' 는 서버 로 이해 할 수 있다.이 때 브 라 우 저 에 funDealJSON 이라는 함수 가 적 혀 있 습 니 다. 예 를 들 어:
<html>
<script>
// JSON
function funDealJSON(jsonData){
alert(jsonData.para);
}
</script>
</html
>

 
일반적인 의미 에서 "excJSONP" 서 비 스 는 간단 한 JSON 데이터 로 돌아 갈 수 있 습 니 다. 예 를 들 어 {para: test}
그러나 JSONP 는 리 셋 함수 부분 을 JSON 데이터 와 함께 포장 한 후 되 돌려 줍 니 다. 이렇게 되 돌아 오 는 것 은 실행 가능 한 자바 스 크 립 트 문 구 를 되 돌려 줍 니 다. 결 과 는 funDealJSON ({para: test} 과 유사 합 니 다.
이렇게 하면 브 라 우 저가 이 script 탭 에 실 행 될 때 안에 있 는 데 이 터 를 실행 합 니 다. 이 데 이 터 는 실행 가능 한 자바 script 문 입 니 다. 그러면 이때 callback 함 수 를 실 행 했 습 니 다.JSONP 요청 이 한 번 에 끝 났 습 니 다.
 
JSONP 는 같은 소스 정책 의 제한 을 해 결 했 지만 보안 위험 도 가 져 왔 다. 브 라 우 저가 반환 결 과 를 실행 할 때 코드 를 검사 하지 않 기 때문이다.

좋은 웹페이지 즐겨찾기