将AWS S3 success_action_redirect策略与XHR一起使用

时间:2013-04-29 10:21:33

标签: amazon-s3 xmlhttprequest jsonp dropzone.js

我正在使用signed POST将文件直接上传到amazon S3。我在使用PHP签署策略时遇到了一些麻烦,但最后修复了它,这里是sample of code

这个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.

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

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

1 个答案:

答案 0 :(得分:1)

我也遇到了这个问题。似乎没人能解决这个问题like this 也许我找到的最好的解决方法就像this。 似乎唯一的解决方法是包含第二个手动执行回调的xhr请求。因此

  

success_action_status

应该使用

。如果上传成功,您将获得201响应,并且您可以开始第二次请求实际回调。对我来说,它看起来是目前唯一可行的解​​决方案。

还有其他解决方案吗?