6

我正在使用signed POST将文件直接上传到亚马逊 S3。我在使用 PHP 的策略签名时遇到了一些问题,但最终修复了它,这里是代码示例

这个 xhr 请求是用 javascript 发送的,我正在等待亚马逊的答复。起初我使用success_action_status将其设置为 201 来获取 XML 响应。

我想做的是使用success_action_redirect在我的服务器上调用一个脚本来在数据库中创建一条记录。

原因是我可以在数据库中创建记录,如果在这个阶段发生任何错误,我可以在此时直接返回错误消息。它还为我的服务器节省了另一个 ajax 请求。

所以我试图设置它,指定success_action_redirecthttp:\\localhost\callback.php有一个正在等待一些参数的脚本的位置。

但看起来这个脚本从未被调用过,并且响应xhr.send()是空的。

我认为这是一个跨浏览器问题,我想知道是否可以使用 jsonp 以某种方式通过它?有任何想法吗?

更新

显然 xhr 本机遵循重定向,因此它应该可以工作,但是当我指定它时success_action_redirect它返回error Server responded with 0 code.

起初我以为是因为重定向 URL 在我的本地服务器上,所以我将其更改为可访问的服务器,但没有机会。

任何人都知道它为什么返回此错误消息?

4

1 回答 1

1

我也遇到了这个问题。似乎没有人有这样的解决方案,也许 我发现的最好的解决方法是这样的。似乎唯一的解决方法包括手动执行回调的第二个 xhr-request。因此

成功动作状态

应该使用。有了他,如果上传成功,您将收到 201 响应,您可以开始第二次请求实际回调。对我来说,这似乎是目前唯一可能的解决方案。

还有其他解决方案吗?

于 2013-11-14T21:27:00.327 回答