크로스 도메인 요청이란 무엇입니까?
간단한 이해는 동일한 도메인 이름이 아닌 서버 파일을 요청하는 것입니다. 실용적인 예를 사용하여이를 설명합시다. 예를 들어, baidu.com은 요청을 cxyblog.com으로 보냅니다. 두 도메인 이름은 다릅니다. 그래서 이것은 크로스 도메인입니다. 보안상의 이유로 허용되지 않습니다. 또한 다른 서브 도메인, 동일한 도메인의 다른 포트 또는 동일한 도메인의 다른 프로토콜에 의해 전송 된 요청도 크로스 도메인으로 간주되며 기본적으로 다음 범주로 분류 될 수 있음을 언급해야합니다.
(1) http://www.baidu.com은 http://www.cxyblog.com 으로 요청을 보냅니다
(2) http://www.cxyblog.com은 http://image.cxyblog.com 으로 요청을 보냅니다
(3) http://www.baidu.com:8000 요청을 http://www.cxyblog.com 으로 보내십시오
(4) http://www.cxyblog.com은 https://www.cxyblog.com 으로 요청을 보냅니다
(5) http://www.cxyblog.com은 http://112.65.242.67 에 요청을 보냅니다 (도메인 이름에 해당하는 IP www.cxyblog.com이라고 가정하면 112.65.242.67)
위의 5 가지 상황은 모두 크로스 도메인 요청입니다.
크로스 도메인 요청은 언제 사용됩니까?
때로는 ajax 작업을 수행하기 위해 JavaScript를 사용해야 할 때 이런 종류의 크로스 도메인 요청 작업이 발생합니다.
JavaScript를 사용하여 직접 도메인 크로스 도메인 요청을 구현할 수없는 이유는 무엇입니까?
보안상의 이유로 인해 브라우저는 JavaScript의 상 동성 정책에 대한 제한으로 인해 JavaScript가 Cross-Domain 리소스를 요청하도록 허용하지 않습니다.
JavaScript가 크로스 도메인 요청을 구현할 수없는 문제를 해결하는 방법은 무엇입니까?
이 기사에 사용 된 솔루션은 Flyjsonp를 사용하여 크로스 도메인 요청을 구현하는 것입니다. Flyjsonp는 JSON 플러그인으로도 알려진 경량 JavaScript 클래스 라이브러리입니다. 압축 후 총 크기는 약 3KB이며 다른 프레임 워크를 지원할 필요가 없습니다.
Flyjsonp 공식 웹 사이트 주소 : http://alotaiba.github.com/flyjsonp/
그렇다면 Flyjsonp 클래스 라이브러리를 사용하여 크로스 도메인 요청을 구현하는 방법은 무엇입니까?
(1) 먼저 Flyjsonp의 JavaScript 스크립트를로드해야합니다.
<script language = "javaScript"src = "http://www.cxyblog.com/flyjsonp.min.js"> </script>
(2) 그런 다음 FlyjsOnp의 인스턴스를 초기화하려면 매개 변수 디버그를 true 또는 false로 설정할 수 있습니다. 즉, flyjsonp.init ({debug : true}). 이는 디버그 정보를 열지 여부를 의미하며 매개 변수 값은 true 또는 false입니다.
(3) 다음으로 GET 메소드 또는 게시 방법을 사용하여 데이터를 요청하십시오. 특정 예제 코드는 다음과 같습니다.
// flyjsonp는 cross-domain getfunction getData () {flyjsonp.init ({debug : true}); // flyjsonp의 인스턴스를 초기화하면 매개 변수 디버그를 true 또는 false flyjsonp.get으로 설정할 수 있습니다 ({url : //www.cxyblog.com/article.json',/the parametess of/the of remetstess of/the tartings. {// 요청 매개 변수 제한 : 5}, success (data) {// console.log (data)}; flyjsonp의 인스턴스, 매개 변수 디버그는 true 또는 false flyjsonp.post로 설정할 수 있습니다 ({url : 'http : //www.cxyblog.com/article/new', 매개 변수 : {username : 'cxyblog', api_key : '123456', 'title :'test ', netloth', netloth : 'test},'flyjsonp ' 경고 (data);});}참고 : 서버가 클라이언트에 출력되면 출력은 JSON 문자열이어야합니다. 그렇지 않으면 클라이언트가 수신 할 수 없습니다.
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.