【发布时间】:2016-02-26 07:39:17
【问题描述】:
我正在使用锚标记下载并通过服务器 URL 尝试下载媒体文件,它在 Chrome 中运行良好(下载文件)但在 IE、MS Edge 和 Firefox 中它开始流式传输视频.
这是我的代码:
<a id="lnkDownloadVid" class="btn-download" href="http://cdn.example.com/Media/ATV521Dec16.mp4" download="">
我尝试通过 jquery ajax 访问 URL,但出现跨域错误。
//Create a simple AJAX Request to Google and alert the results
alert("Request Start");
$.ajax({
crossDomain: true,
headers: {
"Content-Disposition": "attachment; filename=http://cdn.example.com/Media/ATV521Dec16.mp4"
},
url: "http://cdn.example.com/Media/ATV521Dec16.mp4",
success: function (data) {
alert(data);
},
error: function () {
alert("error");
}
});
alert("Request Ends");
我也试过了,但仍然出现跨源错误:
var request = createCORSRequest("get", "http://cdn.example.com/Media/ATV521Dec16.mp4");
if (request) {
// Define a callback function
alert("Define a callback function");
request.onload = function () { };
// Send request
alert("Send request");
request.send();
}
任何可能的解决方案或我错过了什么?我需要在不使用服务器端的情况下进行下载,也就是说直接通过 URL 下载。 我有点击按钮我需要下载文件。它在 chrome 中工作,但在 IE 和 firefox 中,当我单击它开始流式传输的按钮时。
【问题讨论】:
-
右键另存为
-
我需要它在按钮上工作,只需在 IE 和 Firefox 上的按钮上单击它的开始流式传输。
-
你需要使用ajax吗?为什么不让浏览器下载文件,跨域问题就消失了……
-
@LDj 我只需要下载媒体文件,不一定通过 ajax。我正在使用锚标签的“下载”属性,但它在 firefox 和 IE 中不起作用,对于 IE 和 firefox,它会自动启动媒体流。
-
@mplungjan,我添加了 preventDefault() 现在它甚至没有流媒体。其次我们无法访问cdn。