我能够使用Node.js从Azure表中获取,发布,放置和删除数据。Pure JavaScript或jQuery调用Azure表存储
但是,在我无法使用Node.js并且需要使用纯JavaScript或jQuery解决方案(例如Ajax)对Azure Table Endpoint执行我的REST查询时,需求发生了变化。
我可能需要正确的头文件,授权和可能的SaS ......但在互联网上没有找到任何纯Ajax(不是.NET,而是纯JavaScript文件)或纯JavaScript解决方案的例子。作为一个例子,我可以打到一个非Azure表端点,比如一个普通的REST表并返回结果,但是当我将它设置为Azure表端点时,我得到了预期的403授权失败,因为我没有传递在/不确定授权在哪里设置和正确的标题:
<div id="jsondatahere" ></div>
<script>
yourUrl = 'https://myaccount.table.core.windows.net/myTable()'
function Get(yourUrl){
var Httpreq = new XMLHttpRequest(); // a new request
Httpreq.open("GET",yourUrl,false);
Httpreq.send(null);
return Httpreq.responseText;
}
var json_obj = JSON.parse(Get(yourUrl));
console.log(json_obj);
console.log("this is the author name: "+json_obj.clientName);
document.getElementById("jsondatahere").innerHTML = json_obj.clientName;
</script>
使用我的例子,或jQuery的阿贾克斯,没有任何人有如何设置的授权,所以我可以得到的,后一个例子,说,删除?
更新:
我可以查询我的表,但我有输出,因为我习惯了使用JSON节点的值的问题。
<div id="jsondatahere" ></div>
<!-- Browersify version of Node Azure Storage Files -->
<script src="https://one.rackspace.com/download/attachments/303335292/azure-storage.common.js"></script>
<script src="https://one.rackspace.com/download/attachments/303335292/azure-storage.table.js"></script>
<script>
var tableUri = 'https://minenotyours.table.core.windows.net';
var tableService = AzureStorage.createTableServiceWithSas(tableUri, '?sv=2016-05-31&tn=myInfo&sig=DQKSL13Z%2BF9Xp3WQaBtnEpyWADw9ggWqiwhvcE6YRXE%3D&se=2017-10-10T22%3A05%3A14Z&sp=raud');
var tableQuery = new AzureStorage.TableQuery().top(200);
tableService.queryEntities('myInfo', tableQuery, null, function(error, results, response) {
if (error) {
// Query entities error
console.log(error);
} else {
for (var i = 0, entity; entity = results.entries[i]; i++) {
// Deal with entity object
console.log(entity); // Returns whole object
console.log(entity.clientName); // Returns [object Object] > clientName
console.log(response.body.value[0].clientName); // Returns Value as expected
document.getElementById("jsondatahere").innerHTML = response.body.value[0].clientName; // Outputs value to HTML
}
}
});
</script>
使用上述,我如何输出entity.clientName的XML值?
CORS的支持看起来是那里的表:https://blogs.msdn.microsoft.com/windowsazurestorage/2013/11/27/windows -azure-storage-release-introduction-cors-json-minute-metrics-and-more /我也只是检查了界面,并在我的存储帐户的“表服务”下列出了CORS – Kode
啊,这很好。我会删除之前的评论。我一直在寻找你如何使用JS进行身份验证,发现这个库,希望它有一些用处:https://dmrelease.blob.core.windows.net/azurestoragejssample/samples/sample-table.html –
是的!这是一个很好的开始! – Kode