我希望能够不仅显示xml,还可以选择从服务器下载文件。
在html中,单击该图标将执行下载功能:
<span class="glyphicon glyphicon-download-alt" ng-click="download(report.filename)"></span>
下载功能在我的controller.js中定义
$scope.download = function(filename) {
fmFactory.getXMLFile(filename).then(function (response) {
var file = new Blob([response.data], {type: 'application/xml'});
var fileURL = window.URL.createObjectURL(file);
$window.open(fileURL, '_blank', 'width=700, height=800');
});
}
通过这种实现,我能够在新的弹出窗口中显示文件内容(在本例中为xml)。但是,当我右键单击该图标并选择另存为文件时,它只保存为html。如何下载实际的xml文件?
修改: 我还试图提供文件的链接,而不向webservices发出任何请求。包含所有文件的文件夹位于[tomcat] / webapps / data / fm中,webapps是部署war(ristoreService.war)的地方。
所以现在我的html变成了:
<a ng-href="http://rcdrljboss01a:9880/ristoreService/data/fm/{{report.filename}}.xml">
<span class="glyphicon glyphicon-download-alt"></span></a>
当我启动网页并点击该链接时,它会重定向到http://rcdrljboss01a:9880/ristoreService/data/fm/TRF011063_08042016001105.xml
并以xml格式显示错误Full authentication is required to access this resource
,请参见下图:
我确实用oauth和spring安全保护了网站。验证在登录时完成,之后为所有http请求保存access_token。但是使用href,它根本不与webservice通信。只要运行tomcat实例的用户risdev
有权访问该文件,它就应该可以工作。事实上,用户risdev
确实拥有文件位置的读取权限。
我在chrome中打开了开发工具,页面错误令人困惑:&#34;无法读取localStorage&#34;。为什么它与localStorage有关?