>  기사  >  웹 프론트엔드  >  jquery_jquery에서 jsonp 도메인 간 액세스를 사용하는 구현 방법

jquery_jquery에서 jsonp 도메인 간 액세스를 사용하는 구현 방법

WBOY
WBOY원래의
2016-05-16 18:22:081106검색
코드 복사 코드는 다음과 같습니다.

$.ajax({
async:false,
url: '', // 교차 도메인 URL
type: 'GET',
dataType: 'jsonp',
jsonp: 'jsoncallback', //기본 콜백
data: mydata, // Request data
timeout: 5000,
beforeSend: function(){ //jsonp 메서드가 트리거되지 않는 이유는 dataType이 jsonp로 지정된 경우 더 이상 ajax 이벤트가 아니기 때문일 수 있습니다.
},
success: function (json) { //클라이언트 측에서 jquery가 미리 정의한 콜백 함수입니다. 크로스 도메인 서버에서 json 데이터를 성공적으로 얻은 후 이 콜백 함수가 동적으로 실행됩니다.
if(json.actionErrors.length!= 0){
alert(json.actionErrors);
}

},
complete: function(XMLHttpRequest, textStatus){

},
error: function(xhr){
//Jsonp 모드에서 이 메서드가 트리거되지 않습니다
//오류 처리 요청
alert("요청 오류(상관 네트워크 상태를 확인하세요) .)");
}
});



코드 복사 코드는 다음과 같습니다.

$.getJSON(url "?callback=?",
function(json){

})

이 메서드는 실제로 위의 예입니다. $.ajax({..})에 대한 상위 수준 래퍼입니다.

서버 측에서 콜백 매개변수(예: jsonp*****)를 가져와서 jQuery 측에서 후속 콜백을 가져오고
다음과 같은 것을 반환합니다. "jsonp**** *(" 반환될 json 배열 ")";
jquery는 콜백 메서드를 통해 이를 동적으로 로드하고 호출합니다: jsonp*****(json array);
이것은 도메인 간 목적을 달성합니다.

JSONP는 일종의 스크립트 삽입(ScriptInjection) 동작이므로 보안상의 위험도 있습니다.

참고: jquey는 도메인 간 게시를 지원하지 않습니다.
참고자료:http://www.ibm.com/developerworks/cn/web/wa-aj-jsonp1/
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.