gpt4 book ai didi

javascript - 如何提供受 HTTP 身份验证保护的文件的下载

转载 作者:行者123 更新时间:2023-11-30 11:50:58 25 4
gpt4 key购买 nike

在服务器上,我有几个通过 HTTP 身份验证保护的文件。

现在我想在我的 HTML 页面上创建下载按钮来下载这些文件。我已经了解到,出于安全原因,无法通过 JavaScript/AJAX 下载文件。看这个question .

此外,通过像这样的“正常”下载链接/按钮:<a href="..." download>无法设置 HTTP header 来提供 HTTP 身份验证。

是否有可能制作一个下载按钮/链接到一个具有 HTTP 基本身份验证的文件。

此外,为了更详细地介绍我的用例,我不想使用 session 。

最佳答案

您可以尝试在 url 中使用 username:password 语法:

<a href="username:password@example.com/file.zip">Download</a>

但是,请注意,出于安全原因,浏览器制造商已开始取消对此的支持。 IE 和 Chrome 不再支持它。

解决方法

作为变通方法,您可以在您的服务器上发出请求,而不是直接从浏览器中的 HTML 发出请求。只需编写一个简单的脚本来接受请求并获取受密码保护的文件。

这是一个使用 expressrequest 的简单 node.js 示例:

var express = require('express');
var request = require('request');
var app = express();

app.get('remote-file',function(req,res){
request.get('username:password@example.com/file.zip').pipe(res);
});

app.listen(80);

是的,request模块支持username:password语法。

关于javascript - 如何提供受 HTTP 身份验证保护的文件的下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39484985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com