gpt4 book ai didi

apache - 无法在父jsp中访问不同来源的iframe

转载 作者:太空宇宙 更新时间:2023-11-03 14:57:28 25 4
gpt4 key购买 nike

所需功能类型的快速示例(仅作为示例):

http://www.indeed.hk/cmp/Calvin-Klein-Jeans-&-Calvin-Klein-Underwear/jobs/Part-Time-Sales-Associate-1643e24903d9f4c7

如果您点击立即申请按钮,它会显示一个 iframe。

我有一个项目,我试图访问不同来源的 iframe,比如 https://subdomain.example.com,在 jsp 页面上说 http://www.example.com 但它给了我以下错误:

Failed to read the 'contentDocument' property from 'HTMLIFrameElement': Blocked a frame with origin http://www.example.com from accessing a frame with origin https://subdomain.example.com. The frame requesting access has a protocol of "http", the frame being accessed has a protocol of "https". Protocols must match.

我们将父jsp页面称为parent.jsp,将iframe jsp称为iframe.jsp。
parent.jsp在服务器S上,项目名为xyznet
iframe.jsp在服务器R上,项目名为xyz

这是parent.jsp中的一段代码

<%
java.util.Map model = (java.util.Map)pageContext.findAttribute("model");
%>
<html>
<body>
<h1> This is the parent page
<iframe id="quick-apply-frame" name="iframe-name" src=" <%=https: //sub.domain.com/apply.html?ref=${model.x.y}" onload="quickSetParams();">
</iframe>
<script>
function quickSetParams() {
$("[name=iframe-name]").contents().find("[name=iframe-param-name]").val(${model.value1}');
}
</body>
</html>

这是 iframe.jsp

中的一段代码
<html>
<body>
<form action="xyz.html">
<input name="iframe-parm-name" value=""/>
<input name="iframe-parm-name2" value="${model.parm2}" />
</form>
</body>
</html>

加载 iframe.jsp 的处理程序是一个位于服务器 R 上的 SimpleFormController

我遇到过一些使用 javascript 直接传输数据的解决方案,但我需要一个处理程序,因此,直接的 javascript 重定向或嵌套 iframe 对我来说不起作用

最佳答案

感谢 James 提供的一些线索。我终于让它工作了!

我仍然不完全理解它是如何工作的,但这是我所做的:

我不会在加载 parent.jsp 的同时加载 iframe.jsp(位于 https://sub.domain.com)。意味着,iframe 的 src 最初没有设置。 相反,一旦单击父级中的“showIframe”按钮,我就会调用一个 javascript 函数来加载 iframe。我从某人那里得到一个建议,要解决跨域安全问题,您必须在页面加载后通过 javascript 设置 iframe 的 src。

其他可以探索的更多指针是 CORS,您可以在 ssl.conf 或 httpd.conf(apache 配置)中添加这样的参数 header 设置 Access-Control-Allow-Origin“http://www.domain.com”。它基本上授予访问提到的域的权限

关于apache - 无法在父jsp中访问不同来源的iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27518775/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com