java - 加载 url 而不更改 url

标签 java url playframework controller

鉴于我有两个不同的应用程序服务器。一个是我的 Play 应用程序,另一个是在同一服务器上运行的另一个应用程序。

用户在 Play 应用程序中打开一个链接,该链接重定向到来自其他应用程序的 URL。

public class DocumentController extends Controller {
    public Result open(String id) {
        String url = generateURL(id);
        return redirect(url);
    }
}

此时,如果用户打开第一个 URL,他会被重定向到另一个 URL,然后在浏览器中看到另一个 URL。我希望该 URL 与第一个 URL 保持相同,但仍加载并显示第二个 URL 的内容。用户应该只能在浏览器导航栏中看到第一个 URL。

解决方案应集成到现有 Controller 中。我正在寻找的是“redirect(url)”的替代品。我正在考虑类似“load(url)”或 loadInFrame(url) 的内容。

这可能吗?

<小时/>

rorschach 建议的解决方案

这与我想象的不太一样,但它有效:)

我添加了一个新 View :

@(url: String)

<!DOCTYPE html>
<html lang="de">
    <head>
    </head>
    <body>
        <iframe src="@url"></iframe>
    </body>
</html>

现在,我不再重定向到 URL,而是使用 iframe 中的给定 URL 呈现这个新 View :

return ok(iframeView.render(url));

最佳答案

您可以添加 <iframe>到加载该网站的页面或使用更奇特的解决方案 - 在 JavaScript 中对另一侧发出请求,然后用该侧替换页面的完整内容。

编辑:(评论后)

我发现你已经完全改变了问题的前提。哦,好吧..

  • 在 Controller 中返回您自己的页面,其中包含该站点的 URL <iframe>
  • 在您的 Controller 中请求该网站的 HTML 内容并将其填充到您自己的页面中。
  • 返回自己的页面,用JS加载对方网站并替换内容
  • 让事情变得不必要的复杂,并开始搞乱网络服务器的配置,让它在其级别上进行重定向

关于java - 加载 url 而不更改 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45637614/

相关文章:

java - 如何告诉 Jackson 反序列化非缺失字段上的更新值(包括嵌套字段)

java - 使用Java删除字符串中的所有元音

javascript - 一键禁用按钮后是否有机会获得双击按钮?

scala - 在没有 @Inject 的情况下使用 Scala 读取 Play (2.6.5) 中的配置

jquery - Play Framework 和 jQuery Ajax 请求,数据为数组

java - 在servlet中通过scriptlet调用类对象方法

java - 在 Glassfish 上部署后,在 META-INF/lib 中找不到类,尽管所有 jar 都在那里

jquery - IIS 上的 Javascript Ajax URL 映射问题

android - 如何将字节数组中的图像从android发送到具有Flask的python的url

iOS 和 XCode : What is the best way to store connection settings (i. URL)用于 iOS 应用程序?