【问题标题】:Possible to send request directly to Amazon SQS from http (javascript client)?可以从 http(javascript 客户端)直接向 Amazon SQS 发送请求吗?
【发布时间】:2012-01-13 16:43:37
【问题描述】:

是否可以直接从 javascript 向 Amazon 的 SQS 发送消息请求?我正在尝试创建一个日志系统,并且很想绕过将请求发送到中间人服务器。另外,有人知道我可以利用此解决方案的任何替代方案吗?

【问题讨论】:

  • 这是服务器端 Javascript(例如 Node.js)还是在浏览器/客户端中运行?
  • 客户端。澄清一下,您可以通过使用脚本注入并将脚本元素的 src 设置为其余 url 来克服跨域限制。如果亚马逊愿意接受一个可选的回调参数来包装响应 json 对象,这将是一个标准的 JSONP 调用。对于任何关心的人,您可以在这里阅读更多信息:en.wikipedia.org/wiki/JSONP

标签: amazon-web-services message-queue amazon-sqs


【解决方案1】:

SQS(事实上所有的 AWS 服务)都公开了基于 REST 的 API。您可以通过 javascript 代码直接向 SQS REST api 发出 http 请求。给定的 api 文档 ID here

【讨论】:

  • 浏览器同源策略会阻止这种情况。除非 OP 正在谈论服务器端 Javascript(例如 Node.js)
  • WebSockets 可以工作,所以像 Socket.io 或 Pusher.com 这样的东西应该可以正常工作。
【解决方案2】:

除非您从与您尝试发送到的 SQS 域相同的 SQS 域加载您的 Javascript,否则不会,由于客户端/Javascript 同源策略,您将无法交叉发布到 SQS。

最好的办法是使用自己的中间人服务器。

【讨论】:

  • 实际上,有没有办法使用 json 格式化输出并将其包装在回调函数中?如果是这种情况,那么可以使用 jsonp 来克服跨域限制。
【解决方案3】:

您可以在您的 JS 应用程序中使用 AWS Javascript API,然后使用该库为您进行 SQS API 调用。

【讨论】:

    猜你喜欢
    • 2011-12-23
    • 1970-01-01
    • 2012-12-17
    • 2020-07-15
    • 1970-01-01
    • 2015-03-21
    • 2015-04-26
    • 1970-01-01
    • 2012-02-05
    相关资源
    最近更新 更多