首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular & Spring:如何在不暴露URL的情况下加载外部页面?

Angular & Spring:如何在不暴露URL的情况下加载外部页面?
EN

Stack Overflow用户
提问于 2019-11-26 00:34:35
回答 1查看 210关注 0票数 0

这可能是一个奇怪的问题,所以我正在尽可能地解释我的问题。我有一个前端应用程序,这必须从另一个页面加载iframe-内容。然而,前端应用程序不允许简单地调用待集成应用程序的URL,而是通过某种代理地址来调用。即使是允许更改iframe-content的URL参数,也应该首先通过Spring后端运行,后者调用特定的页面,然后将其返回到前端。

我做错什么了?一开始,我试着创建一个非常简单的REST调用。请记住,当涉及到Spring时,我并不是很了解

代码语言:javascript
复制
@RequestMapping(value = "/api/include-content", method = RequestMethod.GET)
@CrossOrigin(origins = "http://localhost:4200")
public ResponseEntity<String> getIFrameContent() {
    String server1 = <page_in_frame>;

    RestTemplate rest;
    HttpHeaders headers;

    rest = new RestTemplate();
    headers = new HttpHeaders();
    headers.add("Content-Type", "text/html");
    headers.add("Accept", "*/*");

    HttpEntity<String> requestEntity = new HttpEntity<String>("", headers);
    ResponseEntity<String> responseEntity = rest.exchange(server1, HttpMethod.GET, requestEntity, String.class);

    return responseEntity;
}

从它获得响应看起来很好,至少使用REST客户端进行了快速测试。所以我继续我的前端。我也尽可能地把它保持在基本的位置。

对于HTML模板

代码语言:javascript
复制
<div id="main-content" class="container-fluid">
  <iframe id="iframe-content" frameborder="0" style="width: 90%; height: 700px">
  </iframe>
</div>

对于ts,我创建了一个像这样工作的方法。

代码语言:javascript
复制
  redirectTo() {
    this.httpClient.get("http://localhost:8080/api/include-content", {responseType: "text"}).subscribe(data => {
      this.redirectData = data;
    }, (error) => {
      this.errorService.showError(error)
    }, () => {
      let iFrame = document.getElementById("powerBIFrame");
      iFrame['src'] = 'data:text/html,' + encodeURIComponent(this.redirectData);
    });
  }

在这种情况下,我没有考虑到的是,我没有得到任何资源。我只得到一个没有样式和/或功能的静态页面。单击链接上的任何链接都会创建一个空页面。我只能得出结论,我的方法本质上是有缺陷的,我需要(也许?)在我的后端上的某种代理功能?

EN

回答 1

Stack Overflow用户

发布于 2019-11-26 01:07:48

如果你使用的是iframe,那么你必须将一个url暴露给前端,因为在这种情况下,它需要一个源文件来加载。

如果你想使用一个后端生成的输出(spring),你可以简单地指向localhost/任何东西(就像你现在已经拥有的那样),并将它设置为src。这将会起作用,而且是微不足道的。

我会将响应有效负载注入到DOM中,而不是将其作为src属性传递,特别是如果它可能是一个很大的有效负载(就像power双向视图的情况一样)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59036309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档