클라이언트 측 "교차 도메인 액세스"는 항상 골치 아픈 문제였습니다. 다행히도 jQuery의 도움으로 jQuery-1.2 이후로 도메인 간 문제가 해결되었습니다. 프로젝트에서 크로스 도메인 문제에 직면했기 때문에 이 기회를 통해 크로스 도메인 문제를 조사하고 관련 정보와 내 실무를 상담하여 마침내 크로스 도메인 문제를 해결했습니다. 참고용으로 녹음하세요.
jQuery.ajax()는 실제로 jsonp를 사용하여 수행되는 도메인 간 가져오기 메서드를 지원합니다.
실제 사례:
이 방법은 실제로 위 예에서 $.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 표준은 도메인 간 데이터 교환을 지원하며 향후 선택적 도메인 간 데이터 교환 솔루션이 되어야 합니다.