使用jQuery从Azure Blob存储中查询JSON数据

我在Azure blob存储中有一些数据。 数据是JSON,并且已使用“application / json”内容类型保存。

我的应用程序将托管在“myapp.com”,这是一个包含CNAME到“myapp.cloudapp.net”的域名。 我想我应该创建一个像“storage.myapp.com”这样的自定义域名,这个域名可以放到我的Azure存储中。

但是之后? 我可以使用JSONP或其他方式对Azure存储进行JSON ajax调用吗?

怎么会有更好的方法呢?

非常感谢。

好吧,显然Azure blob存储不能直接支持JSONP,但可以做到。

例如,如果我将此JSON存储在Azure blob中:

{"Name":"Valeriano","Surname":"Tortola"} 

我尝试:

  

它不起作用。 好吧,实际上浏览器下载数据但没有回拨。 因此,考虑到JSONP如何工作,如果我使用回调函数保存此JSON:

 dataCallback({"Name":"Valeriano","Surname":"Tortola"}) 

我这样做:

   

然后执行dataCallBack :)缺点是回调函数名称必须被编码,但它总比没有好。

快乐的日子,但如果有人有更好的方式会很棒。

干杯。

Windows Azure Blob存储REST接口返回XML(POX),而不是JSON ……但是从JavaScript查询很简单! 使用restype = container和comp = list调用容器URL:

 $(document).ready(function () { // Retrieve list of Blobs var containerUrl = 'http://tcontepub.blob.core.windows.net/json/'; $.ajax({ type: 'GET', url: containerUrl + '?restype=container&comp=list', dataType: 'xml', success: listBlobs }); }); 

然后,您可以对返回的XML进行基本解析。 在这里,我将提取URL并将其显示在div中。

 function listBlobs(xml) { $(xml).find('Blob').each(function() { var url = $(this).find('Url').text(); $('#panel').append(url + '
'); }); }

我在HTML页面中对此进行了测试,该页面本身存储为Blob。

不幸的是,我担心JavaScript“同源策略”会使这在实践中难以使用。