触发GET请求时如何显示内容而不是下载为文件?

时间:2018-05-24 19:32:23

标签: javascript jquery angularjs

我有一个网页,它会以表格格式显示API响应。我使用Angular Js,Sevlets,Java-Rest Assured框架开发了这个。

表中的每条记录都有一个指向日志文件的链接,该文件是作为rest api响应的url。

当我将其作为锚标记提供时,当我从UI中单击它时,文件将被下载而不是在弹出窗口中打开。

我的问题是如何从网址获取数据,而不是在用户点击链接时将其下载为文件。

<td> <a ng-href="{{item.outputuri}}" target="_blank">Click Log
 </a>

                                 </td>

我已阅读了几篇帖子,并了解到我们需要在服务器端设置内容配置。但它不可能,所以我想从客户端处理它。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如何直接在同一页面上显示内容,而不是尝试转到单独的网址?您可以通过动态创建IFRAME元素并直接在页面上插入主机来显示内容。

下面的displayContent方法请求网址,然后将内容传递给createIframe。该方法将创建IFRAME元素并将内容写入其中。我将基本元素添加到内容中以确保正确呈现任何相对链接。

this.displayContent = function(url) {
    $http.get(url).then(res => this.createIfram(url, res.data, this.hostElem);
}

this.createIframe = function(baseUrl, content, appendToElem) {
    var iframe = document.createElement('iframe');
    iframe.className = 'content';
    appendToElem.appendChild(iframe);
    iframe.contentWindow.document.open();
    iframe.contentWindow.document.write('<base href="' + baseUrl + '" />');
    iframe.contentWindow.document.write(content);
    iframe.contentWindow.document.close();
    // do some other processing on the document
}