我正在开发一个下载页面,该页面使用DLGuard在购买商店后创建自定义文件下载网址。
例如:
<a href="downloadfile.php?r=11034705&p=42">Download</a>
将是页面上的超链接,但是点击此链接会将您引导至网址:
foo.s3.amazonaws.com/example.mp3?AWSAccessKeyId=...
我的问题是,有可能找到.mp3的网址,而无需使用ajax调用导航页面?到目前为止,我已经尝试了以下代码:
<script>
var downloadURL = $("a.button").attr('href');
console.log(downloadURL);
$.ajax({
type: 'GET',
url: downloadURL,
success: function () {
alert("done!");
}
});
</script>
但只收到以下错误消息:
XMLHttpRequest无法加载http://foo.s3.amazonaws.com/example.mp3 ... Access-Control-Allow-Origin不允许原点http://www.example.co.uk。
我想要的只是.mp3文件的url存储为字符串。有人可以帮忙吗?
答案 0 :(得分:1)
由于Cross-Domain request,您需要后端才能进行网络服务。
浏览器不允许您使用JavaScript命中另一个域。
但是,您可以使用PHP,Rails,Node.js等创建一个基本的Web服务,它将为您打电话。因此,您使用AJAX调用自己的Web服务,AJAX调用您想要的URL(有许多库可以使这更容易)。然后让您的Web服务将结果传递给您,您将在AJAX成功回调中检索数据。
使用PHP,Rails或Node.js这是相当简单的,你应该没有问题在线查找示例。
答案 1 :(得分:0)
答案 2 :(得分:0)
在同一个域上对您的服务器进行ajax调用。然后在php中执行此操作:
$page_data = file_get_contents('foo.s3.amazonaws.com/example.mp3?AWSAccessKeyId=...');
echo $page_data;
或任何其他类型的php使用curl等获取请求