我有一个包含iframe的.aspx页面。我从我的ssl服务器绘制嵌入式页面。当我尝试使用嵌入页面使用javascript修改字段时(我将数据放入隐藏字段以便我可以使用服务器端来识别客户端)我收到拒绝访问的消息。如果我在本地运行整个事情我没有遇到任何问题所以真的问题是我必须在我的ssl服务器上更改什么才能允许更改这些字段?
javascript非常简单:
window.frames["frame1"].document.forms['password_form']["username"].value = document.getElementById("username").value;
正如我所说的那样,除了我将iframe src更改为ssl ...
之外这是一个预编译的应用程序,我想知道这是否有所作为。页面本身不是只读的。
谢谢,罗恩。
答案 0 :(得分:1)
Same Origin Policy禁止跨不同来源的文档编写脚本。协议(HTTP / HTTPS)是原始的一部分。因此,如果只有iframe在HTTPS上,则浏览器必须禁止访问示例中的window.frames["frame1"].document
。
简单的解决方案是对主页面和iframe使用HTTPS。
可以采用一种解决方法,但根据您的需要,可能会有太多麻烦:http://softwareas.com/cross-domain-communication-with-iframes(一篇冗长但内容丰富的读物)。