我有一个网页,它会以表格格式显示API响应。我使用Angular Js,Sevlets,Java-Rest Assured框架开发了这个。
表中的每条记录都有一个指向日志文件的链接,该文件是作为rest api响应的url。
当我将其作为锚标记提供时,当我从UI中单击它时,文件将被下载而不是在弹出窗口中打开。
我的问题是如何从网址获取数据,而不是在用户点击链接时将其下载为文件。
<td> <a ng-href="{{item.outputuri}}" target="_blank">Click Log
</a>
</td>
我已阅读了几篇帖子,并了解到我们需要在服务器端设置内容配置。但它不可能,所以我想从客户端处理它。
提前致谢。
答案 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
}