怎样在跨域的两个页面之间实现实时通信???

时间:2022-05-05 20:10:04
我现在在www.aaa.com/aaa.aspx插入了一个JS文件,
地址为www.bbb.com/js/insert.js
要实现的功能是单击www.aaa.com/aaa.aspx页面中的一个按钮之后,
弹出一个www.bbb.com/con/asp/bbb.aspx文件,
插入insert.js的目的就是在打开bbb.aspx页面的时候可以传一些参数给
bbb.aspx页面,比如插入页面的cookie,这样就能实现
如果www.aaa.com/aaa.aspx页面的用户已经登录,就是说写了cookie
那样在打开www.bbb.com/con/asp/bbb.aspx页面的时候,此页面的用户就会自动登录。
但是现在领导要求要实时的检测。
就是说如果www.aaa.com/aaa.aspx页面的用户退出了或者换了另一个,
则www.bbb.com/con/asp/bbb.aspx页面的用户也必须实时的退出或者换另一个。

急!急!急!
希望各位高手帮帮忙,给个思路啊!!!
谢谢!!!

19 个解决方案

#1


js只能通过url传递信息。
你可以把登录、退出的状态通过bbb.aspx?x=xxx进行传递。

最好的办法是采用SSO,

#2


我现在在做openfire,js页面之间可以通信,你有兴趣也试试,就是xmpp

#3


在b中每次操作都用jsonp向a确认一下就行了

#4


引用 1 楼 net_lover 的回复:
js只能通过url传递信息。
你可以把登录、退出的状态通过bbb.aspx?x=xxx进行传递。

最好的办法是采用SSO,

我第一次打开页面的时候就这么做的。
但是怎么实现实时的通知bbb.aspx登录、退出的状态呢?
最好bbb.aspx页面不要刷新,因为bbb.aspx页面刷新的话,
会丢失一些有用的信息,或者重置某些信息的。
请问SSO是什么?

#5


引用 2 楼 lieri111 的回复:
我现在在做openfire,js页面之间可以通信,你有兴趣也试试,就是xmpp

我现在做的也类似于这种应用吧!!!

#6


引用 3 楼 cloudgamer 的回复:
在b中每次操作都用jsonp向a确认一下就行了

对jsonp不是很了解,能举个小例子吗???

#7


引用 6 楼 kingwolf_javascript 的回复:
引用 3 楼 cloudgamer 的回复:
在b中每次操作都用jsonp向a确认一下就行了

对jsonp不是很了解,能举个小例子吗???


例如
b页面定义了
window["u_in"]=x
window["u_out"]=y
分别是登录了和没有登录的执行的函数
用一个script链接www.aaa.com/a.aspx
在里面判断用户是否登录
没有登录就输出u_in()否则输出u_out()

#8


用一个script链接www.aaa.com/a.aspx?返回的应该是JS代码吧?
在里面判断用户是否登录?不太清楚怎么判断?
是在CS代码里判断是否登录然后返回相应的JS代码?

#9


引用 8 楼 kingwolf_javascript 的回复:
用一个script链接www.aaa.com/a.aspx?返回的应该是JS代码吧?
在里面判断用户是否登录?不太清楚怎么判断?
是在CS代码里判断是否登录然后返回相应的JS代码?


#10


就是说执行a的后台程序
然后执行b的js程序

#11


引用 10 楼 cloudgamer 的回复:
就是说执行a的后台程序
然后执行b的js程序

真的很感谢您的回答!!!谢谢!!!
还有其它方法吗?
我这里那条路行不通啊!
因为我这里对于a域名下面的文件我没有控制权,
我只有b域名下面的文件的控制权。
说白了,就是我这里给其它域名提供一个外部JS文件路径而已,
顶多可以在其它域名下面插入一些HTML元素,但是不允许对插入页做更改!
就是一个第三方的服务。
不知道还有没有其它办法可以实现???

#12


那就用b的后台做代理(后台可以跨域)
用采集接口之类的方法判断a是否登录那b页面就不用跨域了

#13


还可以在a页面用js判断cookie之类的看是否登录
然后插一个iframe连b页面
b页面通过带参数的url判断登录状态写入cookie
然后b域名的页面就可以通过cookie来判断了

不过要做到实时的话可能要不断刷iframe可能比较烦

#14


引用 13 楼 cloudgamer 的回复:
还可以在a页面用js判断cookie之类的看是否登录
然后插一个iframe连b页面
b页面通过带参数的url判断登录状态写入cookie
然后b域名的页面就可以通过cookie来判断了

不过要做到实时的话可能要不断刷iframe可能比较烦

我现在的流程就是这样的,不过不是iframe,而是一个使用Window.open
打开 的一个独立窗口,不断刷页面就怕会丢失一些JS对象啊!
因为不断刷页面就相当于总是初始化JS嘛!
还有一点比较麻烦,我的b页面关键还有一个onbeforeunload事件啊!
刷页面总是会有提示的。

#15


JSON处理

#16


引用 14 楼 kingwolf_javascript 的回复:
引用 13 楼 cloudgamer 的回复:
还可以在a页面用js判断cookie之类的看是否登录
然后插一个iframe连b页面
b页面通过带参数的url判断登录状态写入cookie
然后b域名的页面就可以通过cookie来判断了

不过要做到实时的话可能要不断刷iframe可能比较烦

我现在的流程就是这样的,不过不是iframe,而是一个使用Window.open
打开 ……


具体就只能你自己想啦
只能给些思路

#17


引用 15 楼 rollce1983 的回复:
JSON处理

怎么个JSON处理法???

#18


还有思路吗???

#19


真的没有人知道了吗???

#1


js只能通过url传递信息。
你可以把登录、退出的状态通过bbb.aspx?x=xxx进行传递。

最好的办法是采用SSO,

#2


我现在在做openfire,js页面之间可以通信,你有兴趣也试试,就是xmpp

#3


在b中每次操作都用jsonp向a确认一下就行了

#4


引用 1 楼 net_lover 的回复:
js只能通过url传递信息。
你可以把登录、退出的状态通过bbb.aspx?x=xxx进行传递。

最好的办法是采用SSO,

我第一次打开页面的时候就这么做的。
但是怎么实现实时的通知bbb.aspx登录、退出的状态呢?
最好bbb.aspx页面不要刷新,因为bbb.aspx页面刷新的话,
会丢失一些有用的信息,或者重置某些信息的。
请问SSO是什么?

#5


引用 2 楼 lieri111 的回复:
我现在在做openfire,js页面之间可以通信,你有兴趣也试试,就是xmpp

我现在做的也类似于这种应用吧!!!

#6


引用 3 楼 cloudgamer 的回复:
在b中每次操作都用jsonp向a确认一下就行了

对jsonp不是很了解,能举个小例子吗???

#7


引用 6 楼 kingwolf_javascript 的回复:
引用 3 楼 cloudgamer 的回复:
在b中每次操作都用jsonp向a确认一下就行了

对jsonp不是很了解,能举个小例子吗???


例如
b页面定义了
window["u_in"]=x
window["u_out"]=y
分别是登录了和没有登录的执行的函数
用一个script链接www.aaa.com/a.aspx
在里面判断用户是否登录
没有登录就输出u_in()否则输出u_out()

#8


用一个script链接www.aaa.com/a.aspx?返回的应该是JS代码吧?
在里面判断用户是否登录?不太清楚怎么判断?
是在CS代码里判断是否登录然后返回相应的JS代码?

#9


引用 8 楼 kingwolf_javascript 的回复:
用一个script链接www.aaa.com/a.aspx?返回的应该是JS代码吧?
在里面判断用户是否登录?不太清楚怎么判断?
是在CS代码里判断是否登录然后返回相应的JS代码?


#10


就是说执行a的后台程序
然后执行b的js程序

#11


引用 10 楼 cloudgamer 的回复:
就是说执行a的后台程序
然后执行b的js程序

真的很感谢您的回答!!!谢谢!!!
还有其它方法吗?
我这里那条路行不通啊!
因为我这里对于a域名下面的文件我没有控制权,
我只有b域名下面的文件的控制权。
说白了,就是我这里给其它域名提供一个外部JS文件路径而已,
顶多可以在其它域名下面插入一些HTML元素,但是不允许对插入页做更改!
就是一个第三方的服务。
不知道还有没有其它办法可以实现???

#12


那就用b的后台做代理(后台可以跨域)
用采集接口之类的方法判断a是否登录那b页面就不用跨域了

#13


还可以在a页面用js判断cookie之类的看是否登录
然后插一个iframe连b页面
b页面通过带参数的url判断登录状态写入cookie
然后b域名的页面就可以通过cookie来判断了

不过要做到实时的话可能要不断刷iframe可能比较烦

#14


引用 13 楼 cloudgamer 的回复:
还可以在a页面用js判断cookie之类的看是否登录
然后插一个iframe连b页面
b页面通过带参数的url判断登录状态写入cookie
然后b域名的页面就可以通过cookie来判断了

不过要做到实时的话可能要不断刷iframe可能比较烦

我现在的流程就是这样的,不过不是iframe,而是一个使用Window.open
打开 的一个独立窗口,不断刷页面就怕会丢失一些JS对象啊!
因为不断刷页面就相当于总是初始化JS嘛!
还有一点比较麻烦,我的b页面关键还有一个onbeforeunload事件啊!
刷页面总是会有提示的。

#15


JSON处理

#16


引用 14 楼 kingwolf_javascript 的回复:
引用 13 楼 cloudgamer 的回复:
还可以在a页面用js判断cookie之类的看是否登录
然后插一个iframe连b页面
b页面通过带参数的url判断登录状态写入cookie
然后b域名的页面就可以通过cookie来判断了

不过要做到实时的话可能要不断刷iframe可能比较烦

我现在的流程就是这样的,不过不是iframe,而是一个使用Window.open
打开 ……


具体就只能你自己想啦
只能给些思路

#17


引用 15 楼 rollce1983 的回复:
JSON处理

怎么个JSON处理法???

#18


还有思路吗???

#19


真的没有人知道了吗???

#20