> 웹 프론트엔드 > JS 튜토리얼 > JS 교차 도메인 요약_javascript 기술

JS 교차 도메인 요약_javascript 기술

WBOY
풀어 주다: 2016-05-16 17:50:36
원래의
1118명이 탐색했습니다.

교차 도메인 JavaScript에는 두 가지 경우가 있습니다.
1. a.c.com 및 b.c.com과 같은 동일한 상위 도메인을 기반으로 하는 하위 도메인 간
2. www. a.com 및 www.b.com
3. 포트는 www.a.com:8080 및 www.a.com:8088과 같이 다릅니다.
4. http://www.a.com 및 https://www.a.com
3번과 4번의 경우에는 백그라운드 프록시를 통해 해결해야 합니다.
a. 개시자의 도메인 아래에 프록시 프로그램을 생성합니다
b. 개시자의 js는 이 도메인에서 프록시 프로그램을 호출합니다
c. 프록시는 수신자에게 요청을 보내고 해당 데이터를 얻습니다
d. 이니시에이터의 js에 데이터를 가져옵니다
이니시에이터 페이지 코드는 다음과 같습니다.

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











< div id="divData">




接收方页face代码如下:
复主代码 代码如下:

<본문>




2、动态创建script:
  a、在发起方页face动态加载一个script,scriptURL指向接收方的一个处理地址(后台),该地址返유용한 자바스크립트 방법被执行,另외URL中可以传入一些参数,该方法只支持GET方式提交参数。
  b、加载적 스크립트可以에서 调用跨域js方法后再做一自己的处理
发起方页면적代码如下:
复主代码 代码如下:


스크립트 테스트


<본문>



接收方服务器端代码如下 :


代码如下 代码如下 :
protected void Page_Load(객체 전송자, EventArgs e)
{
Response.Clear();
Response.ContentType = "application/x-javascript";
Response.Write(String.Format(@"alert('{0}');", DateTime.Now));
응답.끝();
}

3、location.hash iframe:
  a、发起方创建一个隐藏的iframe,iframe的源指向接收方的页face,并通过接收方页面的hash值来传送数据
  b、发起方创建一个定时器,定时检查自己的location.hash并事应的处理
c、接收方创建一个隐藏的iframe,iframe的源指向发起方所在域的一个代理页면, 并将接收方根据发起方传入的数据而处理后的数据过代理页면적해시值来传送
d、接收方创建一定时器,定时检查自己的location.hash并작품상应的处理
e、代理页면创建一个定时器,定时检查自己的location.hash并同步更新发起方页면적hash值
www.a.com/a.html#aaa,其中#aaa就是location. hash值
发起方页face代码如下:

复代码码 代码如下:

<본문>








接收方页face代码如下:
复主代码 代码如下:

<본문>




发起方域下적 代理页면代码如下:
复主代码 代码如下:




4、window.name:
a、发起方页face创建一个隐藏的iframe,并且源指向接收方页face
b、接收方에서 自己页면통过script将需要传送的数据放入window.name里
c、发起方은 iframe의 onload 방식에서 里将iframe의 源改为와 自己는 同一个域下의 代理页 화면(因为只能是同一个域下才能访问window. 이름적임)
d、获取window.name적值(虽然iframe的源改变了,但是window.name적值不会变)
window.name적值差不多可以有2MB大小
发起方页面代码如下:
复代码如下: 代码如下:

<본문>







接收方页face代码如下:
复主代码 代码如下:




发起方域下的代理页face代码如下:

(其实什么TU불용)
5, HTML5의 postMessage
a,receiverWindow.postMessage(msg, targetOrigin),receiverWindow就是对接收消息적창이용, 可以是iframe의contentWindow/window. open 返回值/window.frames中的一个;msg就是要发送的消息,string类型;targetOrigin사용 于限제 수신기Window의 URI,包括主域이름과 端使,使用 "*"表示无限是为了안전검사设置下,以防消息发送给恶의료적인网站,如果targetOrigin의URI와receiverWindow가불가능합니다.获得消息,并且通过event.origin的属性来验证发送方并通过event.data来获得传送的消息内容,event.source来获得发送方的window对象
发起方页面代码如下:

复제대码 代码如下:








接收方页face代码如下:

复主代码 代码如下:

  a、发起方页면创建一个隐藏的iframe,并且源指向接收方页면
b、发起方页면통过iframe.contentWindow.opener = {a: function(params){...}, b: function (매개변수){...} ...}정의 사용 방법
c, 사용 방법
c, 사용 방법 >d, 接收方页면통로parent.opener = {c: function(params){...}, d: function(params){...} ...}정의법 >e, 发起方页置opener.c/opener.d来调用接收方定义象
其实原理就是重置opener对象
发起方页face代码如下




复主代码
代码如下:







수신자 페이지 코드는 다음과 같습니다.


="javascript" type="text/javascript">
window.navigator .c = function(msg) { Alert('c 메소드를 호출하고 메시지를 받았습니다:' msg)
window. navigator.d = function(msg) { Alert('d 메소드를 호출하고 메시지를 받았습니다:' msg) }
setInterval(function() { window.navigator.a('aaa'); }, 2000 );
setInterval(function() { window.navigator.b('bbb') ; }, 2000)
관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿