我正在开发一个单页,在客户端使用Javascript + AngularJS,在服务器端使用Spring MVC + Spring Security OAuth2.Spring MVC充当来自页面的任何AJAX请求的REST控制器.
对于授权,脚本会向每个AJAX请求发送"Authorization:Bearer ..."标头.这在请求少量数据时工作正常.要下载XML文件(导出用户数据),我通过AJAX下载它们,使用OAuth2标头并创建一个Blob以允许在浏览器中保存文件:
var blob = new Blob([data.data], {'type': "text/xml"});
var a = document.createElement("a");
a.href = window.URL.createObjectURL(blob);
a.download = "downloaded-file-" + new Date().toISOString() + ".xml";
a.click();
Run Code Online (Sandbox Code Playgroud)
这种方法有效
因此,问题是:是否有更好的方法可以使用OAuth2授权下载文件?Javascript在执行重定向时不允许指定标头,OAuth不允许通过URL参数指定授权令牌.我在考虑
如果有人有类似的问题,请你分享一下这个问题的方法吗?