如何让一个网页显示在另一个网页

How to get a webpage displayed within another webpage?

本文关键字:网页 一个 显示 另一个      更新时间:2023-09-26

我正在尝试使用spring安全框架创建一个web应用程序" a "。认证后,它会把用户带到一个页面,其中另一个web应用程序"B"(托管在同一/其他服务器)显示在一个窗口(可实现使用iframe)。主web应用程序"A"从用户那里获取web应用程序"B"的链接地址,因此web应用程序"B"应该是动态可变的。

我创建了具有CAS认证的web应用程序"A"。认证后,它使用iframe在窗口内显示web应用程序"B",但当我尝试使用jQuery和Javascript动态更改web页面"B"时,它失败了。

如果有人能在这方面帮助我,我会很感激的。首先,让我知道我做的是否正确,否则建议我正确的步骤。也让我知道如果有更好的方法来实现相同的。请看下面的代码:

谢谢,萨钦

<!DOCTYPE html>
<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script>
        $(document).ready(function(){
            $("button").click(function(){
                $("#serverurl").attr("src", $("#Link").val());
            });
        });
    </script>
</head>
<body>
<h1>Secure Page</h1>
<p>This is a protected page. You can get to me if you've been remembered,
    or if you've authenticated this session.</p>
<p><a href="../">Home</a>
<p><a href="../j_spring_security_logout">Logout</a>
<p>Enter URL: <input type="text" id="Link" value="www.google.com"></p>
<button>Show webpage</button>
<div><iframe src="http://w3school.com" id="serverurl" width="800" height="600"></iframe></div>
</body> </html>

我在jsFiddle上重新创建了您的示例:

http://jsfiddle.net/eZRTw/1/

那么,你有两个问题:

  1. 您的输入值缺少http://.所以你的浏览器尝试打开一个相对路径,比如:http://yourserver.com/www.google.com

  2. 如果你打开浏览器控制台,点击"显示网页",你会看到一个错误:Refused to display 'https://www.google.com/' in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'.。这是因为google服务器发送了一个标题来避免点击劫持攻击。

如果你想在iFrame中显示的所有网站都不发送X-Frame-Options,如google,只需修复第一个项目,一切都会好的

相关文章: