【问题标题】:How to access XML hosted as azure blob from azure website如何从 azure 网站访问托管为 azure blob 的 XML
【发布时间】:2013-02-28 12:03:29
【问题描述】:

我目前正在调查问题: 我们有一个后端应用程序,它创建带有内容的 XML 文件并将它们存储为 Azure Blob(我们无法更改)。

Blob 示例网址:http://mytestaccount.blob.core.windows.net

我们正在实现一个使用这些 XML 文件的网页。

我们当前的解决方案是静态网页(不需要 iis 或任何其他服务器)托管在与上述 XML 文件相同的 blob 上。

问题 1:有没有办法将域名重定向到我们当前作为 blob 托管的网页?

我们考虑过不将 Web 应用程序托管为 Blob,而是使用 Azure 网站。这会产生跨域请求的问题(我们必须获取那些 XML 文件)。

网站示例网址:http://mytestpage.azurewebsites.net

问题 2:有没有办法通过 jquery ajax 调用从这样的网页(托管为 Azure 网页)下载 XML 到存储为 Blob 的 xml?

【问题讨论】:

    标签: azure cross-domain azure-blob-storage azure-web-app-service


    【解决方案1】:

    问题 1:有没有办法将域名重定向到我们当前作为 blob 托管的网页?

    是的,当然可以这样做,但目前存在一些限制。有关配置指向 Blob 存储的子域的信息,请参阅此链接:http://msdn.microsoft.com/en-us/library/windowsazure/ee795179.aspx。请注意,目前您无法使用此方法为您的网站指定默认文档。

    问题 2:有没有办法通过 jquery ajax 调用从这样的网页(托管为 Azure 网页)下载 XML 到存储为 Blob 的 xml?

    读取 blob 不会导致跨域请求问题。当您尝试在 Blob 存储中发布/放置一些内容时,会出现跨域问题。

    只要您的 blob 容器是公共的,您就应该能够毫无问题地访问 blob。这是一个简单的 GET。但是,如果您的 blob 容器是私有的,那么您需要在具有“读取”权限的 blob 上创建一个共享访问签名 URI,并在您的 jQuery AJAX 调用中使用该 URI。

    更新:通过 jQuery AJAX 调用读取 blob 会出现“跨域”错误。

    【讨论】:

    • 感谢您的回答。我仍然认为你错了。我进行了概念验证检查,现在可以通过 ajax 从托管在 Azure 网站 (myazurewebsite.azurewebsites.net) 上的站点中直接获取作为 blob 托管的 xml 文件(让我们说在 mystorageaccount.blob.core.windows.net/files/myfile.xml 上)。尝试获取此文件会引发跨域错误。
    • 是的,你是对的。当我尝试从不同的域读取 blob 时出现相同的错误。我已经更新了我的答案。
    • 我决定将我的页面托管为 Azure 网站(ASP.NET 角色)。将其从免费更改为共享,以便使用自定义域。编写了一个通用处理程序来访问 blob XML 数据。
    猜你喜欢
    • 2016-11-20
    • 2017-07-26
    • 1970-01-01
    • 2020-12-23
    • 2021-01-14
    • 1970-01-01
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多