从客户端javascript / jquery访问Windows Azure队列

时间:2012-10-10 19:39:19

标签: javascript jquery azure azure-storage

对于UI功能,我需要从Windows Azure队列中读取并相应地更新UI。

我看到很多node.js示例,但没有使用纯Javascript或Jquery。 (azureQuery接近但没有队列功能,它需要一个Web API来与之交谈)

这是一个使用asp.net和MVC 4的混合Web应用程序。此特定页面是使用MVC 4生成的。

任何建议都将不胜感激。

罗伯特 (PS。能够写入队列也很不错)

3 个答案:

答案 0 :(得分:3)

这不可能直接来自浏览器。浏览器中的JavaScript必须遵循同源策略,这意味着JavaScript只能调用当前网页的域。由于您的网页不会从<account>.queue.windows.net投放,这意味着您的JavaScript无法在该域上调用API。 (如果队列服务提供了CORS标头,那么在大多数浏览器中都可以这样做,但事实并非如此。)

您需要托管代理队列消息的Web端点(可能在您的MVC 4应用程序中)。您的JavaScript会向您的网络应用发送消息,您的网络应用会将消息放入队列。

答案 1 :(得分:2)

更新:请参阅以下评论并弃掉此答案。

您可以尝试使用队列的共享访问签名(SAS)获取邮件列表。我刚做了一个简单的测试,在那里我使用“Read”权限为队列创建了一个SAS。我得到这样的URI:

youraccount.core.queue.net/queuename?sv=2012-02-12&st=2012-10-11T04%3A31%3A53Z&se=2012-10-11T05%3A31%3A53Z&sp=raup&sig = PN4dyOoOIBlJPQbQ%2Bu7jDLyt%2FpIc3k2k1NZTei6q7Cg%3D

使用这个我创建了一个偷看消息的URI

youraccount.core.queue.net/queuename/的消息 SV = 2012-02-12&安培; ST = 2012-10-11T04%3A31%3A53Z&安培; SE = 2012-10-11T05% 3A31%3A53Z&安培; SP =的R&amp; SIG = PN4dyOoOIBlJPQbQ%2Bu7jDLyt%2FpIc3k2k1NZTei6q7Cg%3D&安培;的 peekonly =真

然后我在我的JavaScript代码中使用了这个URI,并在Fiddler中跟踪了请求。我能够看到来自Windows Azure存储的响应。

答案 2 :(得分:0)

您可以使用任何支持的语言访问基于REST界面的Windows Azure Queue。使用JavaScript,您可以进行ajax调用以连接Azure Storage Queue来读取和写入消息。一旦掌握了基于JavaScript + Ajax的代码,您只需使用Azure Queue Storage REST API来执行任何操作。

Here是使用JavaScript连接Azure存储队列的示例。您可以修改代码以连接到真正的Azure存储队列,它将满足您的需求: