web不同域之间互传数据
2010-01-15 13:07
288 查看
今天开发的时候需要调用到其他部门的的一个地址,发过来的demo是
关键是在document.domain ="remote.net";这个使得我可以访问他的页面,根据这个demo改好页面后,我点击保存,没有反应了,js错误提示“没有权限”,上网查了下知道是这个domain引起的,这个时候就想通过js来把domain改回去,但是都提示错误,网上查到:
document.domain 属性是不可以随便设置的,它只能被设置为文件所属域的上级域。如假设 ImgUpload.html 属于 img.mycompany.com ,那么它的 document.domain 属性可以设置为“mycompany.com” ,但不能设置为“img.mycompany” 或其他的,如“foo.com”。
只有当两个域存在相同的上级域时,才能通过指定 document.domain 来实现它们之间的数据交换,并且 document.domain 属性必须被 设置为二者的公共域。例如,假设 NewsEdit.html 属于 news.mycompany.com,而 ImgUpload.html 属于 img.yourcompany.com,那么无论你如何设置 document.domain 都无法在它们之间交换数据;再比如,假设 ImgUpload.html 属于 img.mycompany.com,那么我们可以把两个页面的 document.domain 属性设置为“mycompany.com”,但不可以设置为“img.mycompany” 或其他的什么域,如“foo.com”。
发现到这里这个调用没辙了,不应该在我的主页面改domain的,不然没法改回去。后来折腾了半天总算弄好了,主页面不动,代码改为
注意这里的domain不用设置了,然后把地址指向自己的页面,在自己的页面上做文章。
然后是myurl.jsp代码
当然远程调用也改造过,会回调这个页面的userSelect方法,这个方法会把数据返回。
var userInArray =[]; //userInArray.push("ff80808123977698012398ea851b006b#高杰#2"); var userOutArray =[]; function test(){ document.domain ="remote.net"; userOutArray=window.showModalDialog("http://xxx.kk.yy.htm" ,userInArray,"dialogWidth=753px;dialogHeight=505px"); } function test2(){ alert(userOutArray[0]); }
关键是在document.domain ="remote.net";这个使得我可以访问他的页面,根据这个demo改好页面后,我点击保存,没有反应了,js错误提示“没有权限”,上网查了下知道是这个domain引起的,这个时候就想通过js来把domain改回去,但是都提示错误,网上查到:
document.domain 属性是不可以随便设置的,它只能被设置为文件所属域的上级域。如假设 ImgUpload.html 属于 img.mycompany.com ,那么它的 document.domain 属性可以设置为“mycompany.com” ,但不能设置为“img.mycompany” 或其他的,如“foo.com”。
只有当两个域存在相同的上级域时,才能通过指定 document.domain 来实现它们之间的数据交换,并且 document.domain 属性必须被 设置为二者的公共域。例如,假设 NewsEdit.html 属于 news.mycompany.com,而 ImgUpload.html 属于 img.yourcompany.com,那么无论你如何设置 document.domain 都无法在它们之间交换数据;再比如,假设 ImgUpload.html 属于 img.mycompany.com,那么我们可以把两个页面的 document.domain 属性设置为“mycompany.com”,但不可以设置为“img.mycompany” 或其他的什么域,如“foo.com”。
发现到这里这个调用没辙了,不应该在我的主页面改domain的,不然没法改回去。后来折腾了半天总算弄好了,主页面不动,代码改为
var userInArray =[]; //userInArray.push("ff80808123977698012398ea851b006b#高杰#2"); var userOutArray =[]; function test(){ userOutArray=window.showModalDialog("myurl.jsp" ,userInArray,"dialogWidth=753px;dialogHeight=505px"); } function test2(){ alert(userOutArray[0]); }
注意这里的domain不用设置了,然后把地址指向自己的页面,在自己的页面上做文章。
然后是myurl.jsp代码
<html> <head> <mce:script type="text/javascript"><!-- userInArray = window.dialogArguments; document.domain ="remote.net";//TODO: function userSelect(users){//callback self.returnValue = users; self.close(); } // --></mce:script> </head> <body> <!-- //TODO: --> <iframe id="some" src="http://xxx.kk.yy.htm" scrolling="no" frameborder="0" width="753" height="505"> </iframe> </body> </html>
当然远程调用也改造过,会回调这个页面的userSelect方法,这个方法会把数据返回。
相关文章推荐
- 在不同的Web应用之间共享数据
- 不同Web主机上的Servlet之间数据对象的相互传输
- Web应用环境下不同页面之间的传值(本文暂时只讨论 form表单数据提交)
- 不同Web主机上的Servlet之间数据对象的相互传输
- web服务器与file服务器不同域(Domain)之间的数据交换
- 不同Web主机上的Servlet之间数据对象的相互传输
- android不同线程之间数据交互
- Activity数据传输--Intent显示、隐式、不同应用之间启动
- sersync+rsync同步不同主机之间数据
- 不同服务器数据库之间的数据操作
- 不同模块之间的数据共享
- 不同服务器数据库之间的数据操作
- SQL 表与表之间的数据更新不同方式
- sharedPreferences不同activity之间的数据共享
- Android开发笔记---不同activity之间的数据传递
- 十分钟轻松搞定两个不同数据库之间的数据交换
- 不同类型的数据之间的强制转换
- Android不同APP之间共享数据的方式
- 不同系统之间的数据实时共享问题
- Matlab GUI 设计(4):不同控件之间的数据传递