首页 新闻 搜索 专区 学院

如何得到iframe中跨域得到的信息

0
悬赏园豆:20 [已解决问题] 解决于 2013-05-02 14:44

要做一个本地上传图片的功能,不能用ajax,于是用表单提交来操作,但是有个问题,提交之后页面会跳转到form下action里的地址,那里会有提交成功与否的信息。为了解决这个问题,用了隐藏iframe的办法。如下:

<form action="http://other.htm" method="post" enctype="multipart/form-data" target="blank" id="upForm">
    <input id="file1" type="file" name="upload"  />
</form>
<iframe src="" style="display:none" frameborder="0" name="blank" id="ifr"></iframe>

这样上传提交之后跳转页面就转到隐藏iframe中去了,但是问题来了,我怎么访问iframe里后台返回的信息呢,因为有同源策略的限制。请大家帮忙想想办法。

破秋风的主页 破秋风 | 初学一级 | 园豆:184
提问于:2013-04-27 14:35
< >
分享
最佳答案
0

如果仅仅是获取iframe返回的数据,通过页面的脚本是可以访问子Iframe中的页面的内容的。

不支持jquery .用javascript也是可以的.

收获园豆:20
邢少 | 专家六级 |园豆:10924 | 2013-04-27 17:04

不行啊,chrome控制台报错信息

Unsafe JavaScript attempt to access frame with URL a.htm from frame with URL http://localhost:8080/b.htm  Domains, protocols and ports must match.

破秋风 | 园豆:184 (初学一级) | 2013-05-02 09:21

@破秋风: 嗯,看异常是跨域了。跨域的问题不好解决,应用中只能是尽可能的回避或者使用代理。

如果表单提交的页面所属系统为其它三方系统,唯一的办法就是在服务端增加代理〔httpclient〕,这样就没有跨域的问题。

如果表单提交的系统也是自己开发的,而且允许配置策略文件的话.通过配置策略可以实现允许跨域访问,但要慎用,视情况而定吧。

邢少 | 园豆:10924 (专家六级) | 2013-05-02 09:51
其他回答(1)
0

用Flash上傳圖片控件來做吧。

dotnetgeek | 园豆:482 (菜鸟二级) | 2013-04-27 14:51

手机端的,不能用flash和jquery

支持(0) 反对(0) 破秋风 | 园豆:184 (初学一级) | 2013-04-27 15:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册