JS 到底能不能实现跨域访问啊?各位 大神!

zhj_net_2008 2013-07-22 03:21:41
现在有两个系统,客户的一个系统window.open()打开我的系统,然后在我的页面上操作后,点击确定,把需要的参数返回到客户的页面上后关闭我的系统。请问各位这个参数怎么传过去啊,本机上可以,但是跨域了不行啊!
...全文
683 57 打赏 收藏 转发到动态 举报
写回复
用AI写文章
57 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhj_net_2008 2013-07-25
  • 打赏
  • 举报
回复
谢谢大家的帮助,通过各位的帮助我的问题解决了,就是上面大家说的那种方法。谢谢,如果后面有人涉及到跨域,这种方法也是可行的。
zhj_net_2008 2013-07-25
  • 打赏
  • 举报
回复
引用 54 楼 ILOVE_ASPNET 的回复:
修改之后,描述那段 就是 a域里面有一个空的界面,b域里面 有一个iframe,这个iframe是用来调用a域的空界面,(就相当于初始化a域调b域,b做完操作后,反过来调用,通过iframe调用a域的空界面,把自己的参数传过去),接下来就是a域里面对空界面的数据接收做处理了。
谢谢啊,我测试了,这种方法是可行的。
etherdream 2013-07-25
  • 打赏
  • 举报
回复
跨域,跨页面,跨浏览器通信: http://www.cnblogs.com/index-html/archive/2013/04/08/web_cross_process.html
fzfei2 2013-07-23
  • 打赏
  • 举报
回复
给个方法 A showModalDialog(B),等待B关闭 B 点击确定,提交数据给 A域的一个页面,并关闭B页 关闭showModalDialog页,A页去校验看B提交数据
未知数 2013-07-23
  • 打赏
  • 举报
回复
引用 27 楼 zhj_net_2008 的回复:
[quote=引用 20 楼 wzs_xyz 的回复:] [quote=引用 14 楼 zhj_net_2008 的回复:] [quote=引用 9 楼 wzs_xyz 的回复:] 跨域限制无法突破, 但你的情况倒是有办法可想 客户页面a,域A 你的页面b,域B a打开b后,b中是无法将参数传递到a的,你不用怀疑 但可以通过某种方式绕过限制 b中加载一个iframe,确定时设置src指向域A的一个空白页面c,并传递地址栏参数par,则c与a同域,则c可以通过 window.parent.opener访问到a页面,调用a页面的一个函数就可以将par参数传过去
那是不是相当于又重新打开了一个页面?[/quote] 是打开了一个页面,但有什么关系呢?把iframe隐藏起来,用户又不会看到 都告诉你的跨域限制是不能突破的,用取巧的方式绕过限制,麻烦一点还不能接受?[/quote] window.parent.opener为空或者不是对象?找不到啊?[/quote] 这句得让客户写在你iframe加载的那个页面里面,就是你让客户提供这么一个页面

<html>
<script type="text/javascript">
 var param = qustring('param');//qustring函数功能为解析url参数,需要自己实现,你自己找一个补上
 window.parent.opener.callback(param);
</script>
</html>
你把原理先想明白。 客户页面a,上面的作为事件页面c,让客户那边提供 你的页面b 你b页面iframe加载c页面,并把参数以url参数方式传递到c页面,c页面获得你的参数后,通过引用关系调用a页面的callback函数,这样就相当于a页面获取到了b页面的参数,由于a,c同域,故可以成功
zhj_net_2008 2013-07-23
  • 打赏
  • 举报
回复
为什么html已部署上去参数不能传过来,不部署可以传?
zhj_net_2008 2013-07-23
  • 打赏
  • 举报
回复
各位,帮我看看啊,真的比较急啊
zhj_net_2008 2013-07-23
  • 打赏
  • 举报
回复
引用 20 楼 wzs_xyz 的回复:
[quote=引用 14 楼 zhj_net_2008 的回复:] [quote=引用 9 楼 wzs_xyz 的回复:] 跨域限制无法突破, 但你的情况倒是有办法可想 客户页面a,域A 你的页面b,域B a打开b后,b中是无法将参数传递到a的,你不用怀疑 但可以通过某种方式绕过限制 b中加载一个iframe,确定时设置src指向域A的一个空白页面c,并传递地址栏参数par,则c与a同域,则c可以通过 window.parent.opener访问到a页面,调用a页面的一个函数就可以将par参数传过去
那是不是相当于又重新打开了一个页面?[/quote] 是打开了一个页面,但有什么关系呢?把iframe隐藏起来,用户又不会看到 都告诉你的跨域限制是不能突破的,用取巧的方式绕过限制,麻烦一点还不能接受?[/quote] window.parent.opener为空或者不是对象?找不到啊?
ILOVE_ASPNET 2013-07-23
  • 打赏
  • 举报
回复
修改之后,描述那段 就是 a域里面有一个空的界面,b域里面 有一个iframe,这个iframe是用来调用a域的空界面,(就相当于初始化a域调b域,b做完操作后,反过来调用,通过iframe调用a域的空界面,把自己的参数传过去),接下来就是a域里面对空界面的数据接收做处理了。
ILOVE_ASPNET 2013-07-23
  • 打赏
  • 举报
回复
引用 52 楼 ILOVE_ASPNET 的回复:
前段时间 用easyui 做了一个整合系统 ,也是多个系统之间数据跨域要进行Rucd操作,下面是我的一个情况 楼主可以参考下,看能不能帮到你。 左边是导航,右边 上面是一个tabs,中间是每个要打开的界面显示的内容, tabs 就是 a系统就是a域 打开显示的界面是b系统就是b域,,我要实现的需求就是当在b系统里面 做一个操作的时候 要对a系统的tabs 做Rucd 操作, 看了下跟楼主现在的需求是一样 我实现的方法是 a域 里面放一个 空的iframe用来和b域做通讯, b域里面做完操作之后 把数据传到a域里面的iframe 界面, 然后 iframe 是属于a域的, 所以a域 的tabs 可以直接获取 iframe里面的数据来进行Rucd操作。
上面有个地方打错了,a域里面是放一个空的界面,iframe是放在b里面
ILOVE_ASPNET 2013-07-23
  • 打赏
  • 举报
回复
前段时间 用easyui 做了一个整合系统 ,也是多个系统之间数据跨域要进行Rucd操作,下面是我的一个情况 楼主可以参考下,看能不能帮到你。 左边是导航,右边 上面是一个tabs,中间是每个要打开的界面显示的内容, tabs 就是 a系统就是a域 打开显示的界面是b系统就是b域,,我要实现的需求就是当在b系统里面 做一个操作的时候 要对a系统的tabs 做Rucd 操作, 看了下跟楼主现在的需求是一样 我实现的方法是 a域 里面放一个 空的iframe用来和b域做通讯, b域里面做完操作之后 把数据传到a域里面的iframe 界面, 然后 iframe 是属于a域的, 所以a域 的tabs 可以直接获取 iframe里面的数据来进行Rucd操作。
zhj_net_2008 2013-07-23
  • 打赏
  • 举报
回复
引用 50 楼 showbo 的回复:
[quote=引用 49 楼 zhj_net_2008 的回复:] [quote=引用 48 楼 wzs_xyz 的回复:] [quote=引用 45 楼 showbo 的回复:] [quote=引用 9 楼 wzs_xyz 的回复:] 跨域限制无法突破, 但你的情况倒是有办法可想 客户页面a,域A 你的页面b,域B a打开b后,b中是无法将参数传递到a的,你不用怀疑 但可以通过某种方式绕过限制 b中加载一个iframe,确定时设置src指向域A的一个空白页面c,并传递地址栏参数par,则c与a同域,则c可以通过 window.parent.opener访问到a页面,调用a页面的一个函数就可以将par参数传过去
+++学到了一招。。跨域的,刚测试,能行。。ie,firefox,chrome都有搞。。[/quote] 客气了,我也是拾人牙慧,挺佩服原创者。理解的人一看就知道方法是可行的,只是自己总想不到。既然版主做出了demo,不妨把代码贴出来,楼主看样子是不能理解原理[/quote] 真的很感谢你们,但是我总觉得我思路是这么走的,但就是不行,还请你们帮我看看,上面也有代码啊。谢谢大家了[/quote] 看了楼主的代码,iframe应该放错位置了 a,c同域,b是另外一个域下的,iframe要放到b页面,而不是a页面,不知道我这样理解楼主的页面位置是否正确。。 下面是我自己做的demo,可以通过的:javascript通过iframe加载同源代理页面实现顶级域跨域操作 [/quote] 感谢,我试试看。
Go 旅城通票 2013-07-23
  • 打赏
  • 举报
回复
引用 49 楼 zhj_net_2008 的回复:
[quote=引用 48 楼 wzs_xyz 的回复:] [quote=引用 45 楼 showbo 的回复:] [quote=引用 9 楼 wzs_xyz 的回复:] 跨域限制无法突破, 但你的情况倒是有办法可想 客户页面a,域A 你的页面b,域B a打开b后,b中是无法将参数传递到a的,你不用怀疑 但可以通过某种方式绕过限制 b中加载一个iframe,确定时设置src指向域A的一个空白页面c,并传递地址栏参数par,则c与a同域,则c可以通过 window.parent.opener访问到a页面,调用a页面的一个函数就可以将par参数传过去
+++学到了一招。。跨域的,刚测试,能行。。ie,firefox,chrome都有搞。。[/quote] 客气了,我也是拾人牙慧,挺佩服原创者。理解的人一看就知道方法是可行的,只是自己总想不到。既然版主做出了demo,不妨把代码贴出来,楼主看样子是不能理解原理[/quote] 真的很感谢你们,但是我总觉得我思路是这么走的,但就是不行,还请你们帮我看看,上面也有代码啊。谢谢大家了[/quote] 看了楼主的代码,iframe应该放错位置了 a,c同域,b是另外一个域下的,iframe要放到b页面,而不是a页面,不知道我这样理解楼主的页面位置是否正确。。 下面是我自己做的demo,可以通过的:javascript通过iframe加载同源代理页面实现顶级域跨域操作
zhj_net_2008 2013-07-23
  • 打赏
  • 举报
回复
引用 48 楼 wzs_xyz 的回复:
[quote=引用 45 楼 showbo 的回复:] [quote=引用 9 楼 wzs_xyz 的回复:] 跨域限制无法突破, 但你的情况倒是有办法可想 客户页面a,域A 你的页面b,域B a打开b后,b中是无法将参数传递到a的,你不用怀疑 但可以通过某种方式绕过限制 b中加载一个iframe,确定时设置src指向域A的一个空白页面c,并传递地址栏参数par,则c与a同域,则c可以通过 window.parent.opener访问到a页面,调用a页面的一个函数就可以将par参数传过去
+++学到了一招。。跨域的,刚测试,能行。。ie,firefox,chrome都有搞。。[/quote] 客气了,我也是拾人牙慧,挺佩服原创者。理解的人一看就知道方法是可行的,只是自己总想不到。既然版主做出了demo,不妨把代码贴出来,楼主看样子是不能理解原理[/quote] 真的很感谢你们,但是我总觉得我思路是这么走的,但就是不行,还请你们帮我看看,上面也有代码啊。谢谢大家了
未知数 2013-07-23
  • 打赏
  • 举报
回复
引用 45 楼 showbo 的回复:
[quote=引用 9 楼 wzs_xyz 的回复:] 跨域限制无法突破, 但你的情况倒是有办法可想 客户页面a,域A 你的页面b,域B a打开b后,b中是无法将参数传递到a的,你不用怀疑 但可以通过某种方式绕过限制 b中加载一个iframe,确定时设置src指向域A的一个空白页面c,并传递地址栏参数par,则c与a同域,则c可以通过 window.parent.opener访问到a页面,调用a页面的一个函数就可以将par参数传过去
+++学到了一招。。跨域的,刚测试,能行。。ie,firefox,chrome都有搞。。[/quote] 客气了,我也是拾人牙慧,挺佩服原创者。理解的人一看就知道方法是可行的,只是自己总想不到。既然版主做出了demo,不妨把代码贴出来,楼主看样子是不能理解原理
zhj_net_2008 2013-07-23
  • 打赏
  • 举报
回复
引用 45 楼 showbo 的回复:
[quote=引用 9 楼 wzs_xyz 的回复:] 跨域限制无法突破, 但你的情况倒是有办法可想 客户页面a,域A 你的页面b,域B a打开b后,b中是无法将参数传递到a的,你不用怀疑 但可以通过某种方式绕过限制 b中加载一个iframe,确定时设置src指向域A的一个空白页面c,并传递地址栏参数par,则c与a同域,则c可以通过 window.parent.opener访问到a页面,调用a页面的一个函数就可以将par参数传过去
+++学到了一招。。跨域的,刚测试,能行。。ie,firefox,chrome都有搞。。[/quote] 是按照上面这个思路吗?你看看我的,哪里有问题啊,请指教啊,我已经做了很久了,帮我看看啊
zhj_net_2008 2013-07-23
  • 打赏
  • 举报
回复
引用 44 楼 wzs_xyz 的回复:
[quote=引用 32 楼 zhj_net_2008 的回复:] [quote=引用 30 楼 wzs_xyz 的回复:] [quote=引用 27 楼 zhj_net_2008 的回复:] [quote=引用 20 楼 wzs_xyz 的回复:] [quote=引用 14 楼 zhj_net_2008 的回复:] [quote=引用 9 楼 wzs_xyz 的回复:] 跨域限制无法突破, 但你的情况倒是有办法可想 客户页面a,域A 你的页面b,域B a打开b后,b中是无法将参数传递到a的,你不用怀疑 但可以通过某种方式绕过限制 b中加载一个iframe,确定时设置src指向域A的一个空白页面c,并传递地址栏参数par,则c与a同域,则c可以通过 window.parent.opener访问到a页面,调用a页面的一个函数就可以将par参数传过去
那是不是相当于又重新打开了一个页面?[/quote] 是打开了一个页面,但有什么关系呢?把iframe隐藏起来,用户又不会看到 都告诉你的跨域限制是不能突破的,用取巧的方式绕过限制,麻烦一点还不能接受?[/quote] window.parent.opener为空或者不是对象?找不到啊?[/quote] 这句得让客户写在你iframe加载的那个页面里面,就是你让客户提供这么一个页面

<html>
<script type="text/javascript">
 var param = qustring('param');//qustring函数功能为解析url参数,需要自己实现,你自己找一个补上
 window.parent.opener.callback(param);
</script>
</html>
你把原理先想明白。 客户页面a,上面的作为事件页面c,让客户那边提供 你的页面b 你b页面iframe加载c页面,并把参数以url参数方式传递到c页面,c页面获得你的参数后,通过引用关系调用a页面的callback函数,这样就相当于a页面获取到了b页面的参数,由于a,c同域,故可以成功[/quote] 我是这么做的,不部署的话,在本机上试是可以,但是部署后就传不过来了,我写了三个这样的页面[/quote] 这个方法是可以绕过跨域限制的,你测试没成功,是你自己写错了。所以才说先理解原理,不然你错了也不知道 实在不会,就提供接口让客户定时轮询吧[/quote] 请指教啊,我上面贴了代码的,请问哪里错了,帮我看看,感激不尽啊
Go 旅城通票 2013-07-23
  • 打赏
  • 举报
回复
引用 9 楼 wzs_xyz 的回复:
跨域限制无法突破, 但你的情况倒是有办法可想 客户页面a,域A 你的页面b,域B a打开b后,b中是无法将参数传递到a的,你不用怀疑 但可以通过某种方式绕过限制 b中加载一个iframe,确定时设置src指向域A的一个空白页面c,并传递地址栏参数par,则c与a同域,则c可以通过 window.parent.opener访问到a页面,调用a页面的一个函数就可以将par参数传过去
+++学到了一招。。跨域的,刚测试,能行。。ie,firefox,chrome都有搞。。
未知数 2013-07-23
  • 打赏
  • 举报
回复
引用 32 楼 zhj_net_2008 的回复:
[quote=引用 30 楼 wzs_xyz 的回复:] [quote=引用 27 楼 zhj_net_2008 的回复:] [quote=引用 20 楼 wzs_xyz 的回复:] [quote=引用 14 楼 zhj_net_2008 的回复:] [quote=引用 9 楼 wzs_xyz 的回复:] 跨域限制无法突破, 但你的情况倒是有办法可想 客户页面a,域A 你的页面b,域B a打开b后,b中是无法将参数传递到a的,你不用怀疑 但可以通过某种方式绕过限制 b中加载一个iframe,确定时设置src指向域A的一个空白页面c,并传递地址栏参数par,则c与a同域,则c可以通过 window.parent.opener访问到a页面,调用a页面的一个函数就可以将par参数传过去
那是不是相当于又重新打开了一个页面?[/quote] 是打开了一个页面,但有什么关系呢?把iframe隐藏起来,用户又不会看到 都告诉你的跨域限制是不能突破的,用取巧的方式绕过限制,麻烦一点还不能接受?[/quote] window.parent.opener为空或者不是对象?找不到啊?[/quote] 这句得让客户写在你iframe加载的那个页面里面,就是你让客户提供这么一个页面

<html>
<script type="text/javascript">
 var param = qustring('param');//qustring函数功能为解析url参数,需要自己实现,你自己找一个补上
 window.parent.opener.callback(param);
</script>
</html>
你把原理先想明白。 客户页面a,上面的作为事件页面c,让客户那边提供 你的页面b 你b页面iframe加载c页面,并把参数以url参数方式传递到c页面,c页面获得你的参数后,通过引用关系调用a页面的callback函数,这样就相当于a页面获取到了b页面的参数,由于a,c同域,故可以成功[/quote] 我是这么做的,不部署的话,在本机上试是可以,但是部署后就传不过来了,我写了三个这样的页面[/quote] 这个方法是可以绕过跨域限制的,你测试没成功,是你自己写错了。所以才说先理解原理,不然你错了也不知道 实在不会,就提供接口让客户定时轮询吧
zhj_net_2008 2013-07-23
  • 打赏
  • 举报
回复
281184142 这是我的QQ,请大神帮忙啊
加载更多回复(35)

87,902

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧