如何从包含帖子数据的php超链接获取网址

时间:2013-09-30 20:48:42

标签: javascript php jquery ajax amazon-s3

我正在开发一个下载页面,该页面使用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存储为字符串。有人可以帮忙吗?

3 个答案:

答案 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等获取请求