1

我想在 javaScript 中使用 Azure 表存储 REST api。所以我这样打电话:

 $.ajax({
        type: "POST",

        beforeSend: function (request)
        {
            request.setRequestHeader("contentType", "application/atom+xml;type=entry;charset=utf-8");
        },
        url: "http://mystorageaccountname.table.core.windows.net/TodoList()?sv=2012-02-12&se=2013-07-05T09%3A40%3A06Z&tn=Todo&sp=raud&spk=myid&epk=myid&sig=Z%2BrfC2HxxxBUqM3nt6sCjlSvttb6qqOY%2BBnbdPYV%2BzliA%3D&timeout=90",
        contentType: "application/atom+xml",
        dataType: "jsonp",
        jsonpCallback:"jsonpCallback",
        data: xmlString,
        success: function (xhr) {
            alert(xhr.statusCode);
        }   
    });

我发现请求类型转换得到因为jsonp不支持post..然后我发现了这个线程:

如何使用 javascript 从浏览器将文本字符串直接上传到 Windows Azure Blob 从客户端 javascript/jquery 访问 Windows Azure 队列

似乎如果我在同一个域中托管 webrole 和表存储服务,我可以将该代码与 datatype=xml 一起使用。

我怎样才能做到这一点?akakin.appcloudapp.net akakin.table.core.windows.net 是同一个域吗?或者我如何使用 JS/JQuery 直接调用 Azure mangement Rest API?

4

1 回答 1

3

目前您不能直接使用 JavaScript 调用 Azure 管理 API,因为 Windows Azure 不支持 CORS。Windows Azure 存储中即将支持 CORS。除了 CORS,Windows Azure 表存储还将支持以 JSON 格式返回数据。一旦这两件事都到位,你应该能够做到这一点。

现在,您需要依赖某种中间层(作为 Windows Azure 云服务或 Windows Azure 网站),您将通过 JavaScript 应用程序向其发送请求,然后该中间层将与存储交互以获得数据。由于 Windows Azure 表存储仅返回 XML 格式的数据,因此您需要将该数据转换为 JSONP 格式并返回给客户端。

于 2013-07-05T11:00:50.587 回答