我正在使用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.
起初我以为是因为重定向URL在我的本地服务器上,所以我将其更改为可访问的服务器,但是没有机会。

有人知道为什么它会返回此错误消息吗?

最佳答案

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



应该使用。如果上传成功,则没有他,您将收到201响应,并且您可以启动第二个请求以进行实际的回调。对我来说,这似乎是目前唯一可能的解决方案。

还有其他解决方案吗?

关于amazon-s3 - 将AWS S3 success_action_redirect策略与XHR一起使用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16276244/

10-12 12:28
查看更多