用户填写电子邮件验证表(通过 AJAX 提交)后,如果 AJAX 调用响应成功,我想强制在当前浏览器窗口中开始下载。
电子邮件验证表如下所示:
<form id="form_download_email" method="POST" action="music_email_verification.php">
<input id="download_email" type="text" tabindex="1" /> <br/>
<a href="javascript:void(0);" id="download_email_button">
Download!
</a>
</form>
单击“download_email_button”后的 js/jquery 如下所示:
$("#download_email_button").click(function() {
var action = $("#form_download_email").attr('action');
var form_data = {email: $("#download_email").val()};
$.ajax({
type: "POST",
url: action,
data: form_data,
success: function(response){
if(response == 'success'){
window.location.assign('URL to .mp3 or ZIP');
}
}
});
});
输入了 response=='success' 块,现在我发现的唯一解决方案是使用 window .location.assign 如上所示。这是通过JS强制下载文件的正确方法吗?
但是,使用 window.location.assign 方法我只能下载 1 个文件,如果我尝试用两个 mp3 放入两行,它就不起作用。又名:
window.location.assign('http://song1.mp3');
window.location.assign('http://song2.mp3');
我不希望用户在提交表单后必须单击另一个链接才能下载 .mp3/.zip,我想尝试在 JS/jQuery 中完成所有操作。
我想到的最后一个方法是在 response=='success' 上让浏览器点击文档上的两个隐藏标签,这些标签的 href 指向 mp3。但是,似乎“问题是您无法通过单击触发链接的默认操作”与 jquery,只是 onclick 属性。
我应该用js做这个吗?如果没有办法做到这一点,我应该尝试 PHP 之类的东西吗?
任何关于我目前的做法的建议或关于如何下载多个 mp3 文件的建议都会有所帮助!