2013-02-28 112 views
0

我目前正在调查问题: 我们有一个后端应用程序,它创建带有内容的XML文件并将它们存储为Azure Blobs(我们无法更改此内容)。如何从azure网站访问以azure blob托管的XML

一滴样品网址:http://mytestaccount.blob.core.windows.net

我们正在实现消耗这些XML文件的网页。

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

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

我们考虑将我们的Web应用程序作为Blob托管,但使用Azure网站。这造成了跨域请求的问题(我们必须获取这些XML文件)。

网站样本网址:http://mytestpage.azurewebsites.net

问题2:有没有办法通过这样的网页(如托管Azure的Web页)jQuery的AJAX调用的XML存储作为Blob下载XML?

回答

0

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

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

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

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

只要你的blob容器是公共的,你应该可以在没有任何问题的情况下访问blob。这是一个简单的GET。但是,如果您的blob容器是私有的,那么您需要在blob上创建一个具有“读取”权限的共享访问签名URI,并在您的jQuery AJAX调用中使用该URI。

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

+1

感谢您的回答。我仍然认为你错了。我做了一个概念验证检查,现在有办法直接通过ajax获取一个xml文件作为blob托管(让我们说\t http://mystorageaccount.blob.core.windows.net/files/myfile.xml)从Azure网站上托管的网站(http://myazurewebsite.azurewebsites.net/)。尝试获取此文件会引发跨域错误。 – user1438047 2013-03-04 10:50:46

+0

是的,你是对的。当我尝试从另一个域读取一个blob时遇到同样的错误。我已经更新了我的答案。 – 2013-03-04 12:28:24

+0

我决定将我的页面托管为Azure网站(ASP.NET角色)。将其从免费更改为共享以使用自定义域。写了一个通用处理程序来访问blob XML数据。 – user1438047 2013-03-11 10:10:35