使用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“同源策略”会使这在实践中难以使用。