>  기사  >  웹 프론트엔드  >  Javascript 크로스 도메인 요청 코드 구현 방법에 대한 자세한 설명

Javascript 크로스 도메인 요청 코드 구현 방법에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-20 11:39:221456검색

어떤 상황에서 도메인 간 이 발생합니까?

도메인 이름이 http://www.php.cn이라고 가정합니다.
요청한 도메인 이름이 이 도메인 이름과 다른 경우 일반적으로 크로스 도메인에는 허점이 있기 때문에, 일반적인 크로스 도메인 요청 방법은 요청할 수 없습니다.
Solution:
1.window.name
1. 서버는

<script>window.name=&#39;{"id":"3", "name":"leisure"}&#39;;</script>

2를 반환하고 onload 이벤트a8d03127d746a409cd95a10968b8208d

<script type="text/javascript"> 
var load = false; 
function iLoad() { 
if(load == false) { 
// 同域处理,请求后会再次重新加载iframe 
document.getElementById(&#39;iframe1&#39;).contentWindow.location = &#39;/&#39;; 
load = true; 
} else { 
// 获取window.name的内容,注意必须进行同域处理后方可访问! 
var data = document.getElementById(&#39;iframe1&#39;).contentWindow.name; 
alert(data); // {"id":"3", "name":"leisure"} 
load = false; 
} 
} 
</script>

3. 양식을 정의하고 양식의 대상을 iframe의 ID로 설정한 다음

<form action="url" method="POST" target="iframe1"> 
<button type="submit" value="submit" /> 
</form>


2.JSONP
서버가 콜백({"id": "3", " name": "leisure"});

<script type="text/javascript"> 
function callback(data) { 
alert(data); 
} 
</script> 
<script type="text/javascript" src="http://www.php.cn/product.jsp?id=5&jsonp=callback"></script>


3. jQuery.getJSON
서버는 json 형식의 데이터를 반환합니다. test({"id": "3", "name": "leisure" }); 테스트 함수 이름 콜백 매개변수에

$.getJSON(url + "?callback=?", data, function(data) { 
}

를 정의하세요. jquery는 물음표를 대체할 함수 이름을 자동으로 생성해야 합니다. jQuery.getJSON은 실제로 JSONP를 사용하여 구현됩니다.

4. 교차 도메인 플래시
crossdomain.xml을 서버에 추가
http://www.php.cn/crossdomain.xml

<?xml version="1.0"?> 
<cross-domain-policy> 
<allow-access-from domain="*.another.com.cn" /> 
</cross-domain-policy>


위 내용은 Javascript 크로스 도메인 요청 코드 구현 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.