jquery는 클라이언트 교차 도메인 액세스 문제를 해결합니다_jquery
May 16, 2016 pm 04:22 PM클라이언트 측 "교차 도메인 액세스"는 항상 골치 아픈 문제였습니다. 다행히도 jQuery의 도움으로 jQuery-1.2 이후로 도메인 간 문제가 해결되었습니다. 프로젝트에서 크로스 도메인 문제에 직면했기 때문에 이 기회를 통해 크로스 도메인 문제를 조사하고 관련 정보와 내 실무를 상담하여 마침내 크로스 도메인 문제를 해결했습니다. 참고용으로 녹음하세요.
jQuery.ajax()는 실제로 jsonp를 사용하여 수행되는 도메인 간 가져오기 메서드를 지원합니다.
실제 사례:
$.ajax({
비동기:거짓,
url: 'http://www.mysite.com/demo.do', // 크로스 도메인 URL
유형: 'GET',
데이터 유형: 'jsonp',
jsonp: 'jsoncallback', //기본 콜백
데이터: 마이데이터,
시간 초과: 5000,
beforeSend: function(){ //이 메서드는 jsonp 모드에서는 트리거되지 않습니다. 이유는 dataType이 jsonp로 지정되면 더 이상 ajax 이벤트가 아니기 때문일 수 있습니다
},
성공: 함수(JSON) {// 클라이언트 JQuery의 사전 정의된 콜백 함수입니다. 크로스 도메인 서버에서 JSON 데이터를 성공적으로 얻은 후 이 콜백 함수는
If(json.actionErrors.length!=0){
경고(json.actionErrors)
~ genDynamicContent(qsData,type,json)
},
완료: 함수(XMLHttpRequest, textStatus){
$.unblockUI({ fadeOut: 10 }); },
오류: 함수(xhr){
밖으로 나가서 밖으로 나가고 싶어 밖으로 나가기 out over through out over over over over so so so so so so so so so so so so so so so so so so so so so so so so so so so 그래서 그래서 그래서 그래서 그래서 그래서 그래서 그렇게 에 에 에 에 에 에 에 에 에 에 던지려고 에 에 이 메소드와 이 메소드 메소드 메소드 메소드 메소드 메소드 대 메소드 메소드에서 메소드 메소드 트리거하지 않음
//오류 처리 요청
Alert("요청 오류(해당 네트워크 상태를 확인해주세요.)"); }
});
참고:
함수(json){ If(json.property name==value){ //코드 실행
~ })
이 방법은 실제로 위 예에서 $.ajax({..}) API의 고급 캡슐화입니다. $.ajax API의 기본 매개변수 중 일부는 캡슐화되어 표시되지 않습니다.
서버 측에서는 callback= request.getParameter("callback")을 사용하여 나중에 jQuery 측에서 다시 호출할 jsonp32440980을 가져옵니다.
그런 다음 다음과 같이 반환합니다: "jsonp32440980(" 반환할 json 배열 ")"
jquery는 콜백 메소드를 통해 이를 동적으로 로드하고 호출합니다: jsonp32440980 (json array);
이는 도메인 간 데이터 교환의 목적을 달성합니다.
jsonp의 가장 기본적인 원칙은 동적으로 하나를 추가하는 것이 일관성이 있다는 것입니다(qq 공간은 이 방법을 사용하여 도메인 간 데이터 교환을 달성합니다). JSONP는 일종의 스크립트 주입(ScriptInjection) 동작이므로 일정한 보안 위험도 있습니다.
이는 iframe을 동적으로 생성하기 위해 post를 사용하면 post cross-domain의 목적을 달성할 수 있기 때문입니다(js 전문가가 jquery1.2.5를 패치한 방법임). 이는 상대적으로 극단적인 방법이므로 권장되지 않습니다. get의 도메인 간 액세스 방법은 합법적이며 post 방법은 보안 측면에서 불법으로 간주되므로 클라이언트에서 도메인 간 액세스를 요구하는 최후의 수단으로 게시하지 않는 것이 좋습니다. 정보에 따르면 html5 WebSocket 표준은 도메인 간 데이터 교환을 지원하며 향후 선택적 도메인 간 데이터 교환 솔루션이 되어야 합니다.

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제










![연결하는 동안 VMware Horizon 클라이언트가 정지되거나 정지됨 [수정]](https://img.php.cn/upload/article/000/887/227/170942987315391.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
연결하는 동안 VMware Horizon 클라이언트가 정지되거나 정지됨 [수정]

Baidu Netdisk 웹페이지에서 클라이언트를 시작할 수 없는 문제를 해결하는 방법은 무엇입니까?

jQuery를 사용하여 요소의 높이 속성을 제거하는 방법은 무엇입니까?

jQuery 팁: 페이지에 있는 모든 태그의 텍스트를 빠르게 수정하세요.
