日期:2014-05-16  浏览次数:20398 次

高手请进!十万火急! iframe跨域提交表单 后获取iframe的内容(访问拒绝) 已经几天了
文件,网页:

表单所在页面 : http://www.baidu.com/a.htm
表单处理页面 : http://www.google.com/b.php


----------------------------------------------------
a.htm中有表单,表单的action的值是http://www.google.com/b.php,target是a.htm中的一个iframe,提交后,处理页面(另外一个网站的b.php)处理该表单,并且b.php完成后会有内容显示,内容如下:
HTML code
{“response”:”error”,”message”:”errorParam”}

a.htm中表单提交后,a.htm中的JavaScript需要获取b.php文件中的内容,但是立即获取的话,显示的内容是空的,需要延迟一段时间。但是两个网页不在同一个域下面,IE就提示“访问拒绝”了。如何才可以获得到b.php中显示的内容?

----------------------
b.php的网址可以带参数,比如action的值是b.php?jsoncallback=alert,那么b.php页面的内容便是
HTML code
alert({“response”:”error”,”message”:”errorParam”})


--------------------------------------------------
用什么方法才可以将a.htm中的表单发给b.php,并且获得b.php中的输出内容呢?
另外,b.php中的接受表单的方式必须是POST,不能用GET.

高人帮帮我啊,我不想就这样失败啊。。。。。。。。。。。。。
另外获取iframe中的内容如何兼容Firefox?(document.getElementById("ifm1").document.body.innerHTML) 在Firefox中没有反应,报错)




------解决方案--------------------
我没学过php,仅提供一些建议
js不支持跨域操作,要想从一个页面中直接得到另一个页面的内容,必须使用服务器技术实现。
我曾做过一个类似的,使用的ajax,提交是,用服务器语言获得请求网址的html,再返回页面。
~没了。
------解决方案--------------------
所以,你在服务器使用服务器去访问页面(你得懂php的网络编程,我是不懂。。),然后使用ajax返回该页面,懂?
看我的回帖我用java实现的
------解决方案--------------------
这个就是跨域,跨服务器的问题。
用 js(包括ajax) 来处理不容易, 如果 a 服务器上能写代码问题就能解决了:
a 页面向 a 服务器提交内容, 然后 a 服务器上的php 用http方式向 b 服务器提交,a 服务器接收 b 的返回,
最后处理返回的结果。
pear 里面有个 http 包,建议去看看,

------解决方案--------------------
没做过跨域访问,传值的问题。但感觉楼上的方法可行。
------解决方案--------------------
有多种解决方案。最简单的是做过server side codes proxy代理。绕过跨域。
------解决方案--------------------

------解决方案--------------------



document.getElementById('iframe1').contentWindow.document.body.innerHTML;


这个和支付宝接口有什么区别?
------解决方案--------------------
你的问题我也碰到过,最后得出的结论是JS跨域的话,AJAX行不通,通过iframe的方法也不行,这是浏览器决定的,无解

最佳的解决方案就是,可以用php做一个动态的JS,比如js.php 它的内空就是一段JS代码,那么就可以这样达到跨域访问的目的了,比如通过Script标签 <script src="js.php?id=1234" type="text/javascript"></script>。或者JS动态创建script标签来访问都可以
------解决方案--------------------
You should post to your own web server, do what you want at server side and pass back the information.