use*_*168 15 authentication download angularjs
我有angularjs应用程序,用户输入保存到数据库的数据,然后在服务器端编译成pdf文件.所有访问都需要适当的身份验证标头.在填写所需数据后,用户按下按钮以保存数据,然后检索pdf文件.最好,我打电话给$window.open(url_generating_pdf我的angularjs应用程序.这很好用,并在另一个窗口中打开,但如何在此$window请求中添加身份验证标头?根据我的理解,我无法下载pdf,并使用ajax打印,所以我错过了这种身份验证.或者是否有其他方法可以从服务器调用url,并在另一个窗口中打开文件?
我认为您可以在URL中添加此身份验证参数,并在服务器端执行GET
//Add authentication headers as params
var params = {
access_token: 'An access_token',
other_header: 'other_header'
};
//Add authentication headers in URL
var url = [url_generating_pdf, $.param(params)].join('?');
//Open window
window.open(url);
Run Code Online (Sandbox Code Playgroud)
我认为我应该用正确和安全的答案来更新这个老问题。
您不能在window.open执行的HTTP GET请求中添加任何标头。
发出经过身份验证的请求的安全方法是将身份验证令牌设置在请求标头中,并避免将其暴露在URL中,这是我先前的回答所建议的(此后,我学到了一些知识)。
要使用AngularJS从经过身份验证的服务器下载PDF(或任何其他二进制数据),您应该:
我希望此答案可以消除对此问题的疑虑,并提供一种从经过身份验证的REST API下载资源的安全方法。
| 归档时间: |
|
| 查看次数: |
31507 次 |
| 最近记录: |