2013-04-29 47 views
6

我正在使用signed POST將文件直接上傳到amazon S3。我在使用PHP的策略簽名方面遇到了一些麻煩,但最後修復了它,這裏是sample of code與XHR一起使用AWS S3 success_action_redirect策略

此xhr請求已發送JavaScript,我正在等待來自亞馬遜的答案。起初,我使用success_action_status將它設置爲201來獲得XML響應。

我想要做的是使用success_action_redirect來調用我的服務器上的腳本來創建數據庫中的記錄。

爲什麼我可以在數據庫中創建記錄,如果在此階段發生任何錯誤,我可以直接在此處返回錯誤消息。另外,它爲我的服務器節省了另一個Ajax請求。

所以我試圖設置這個指定success_action_redirecthttp:\\localhost\callback.php我有一個腳本,正在等待一些參數。

但它看起來像這個腳本永遠不會被調用,並且xhr.send()的響應是空的。

我認爲這是一個跨瀏覽器的問題,我想知道是否有可能使用jsonp以某種方式傳遞這個? 任何想法?

UPDATE

顯然XHR是繼重定向本地所以它應該工作,但是當我指定的success_action_redirect返回error Server responded with 0 code.

起初我還以爲是因爲重定向URL是我的本地服務器上,以便我已將其更改爲可訪問的服務器,但沒有機會。

任何人都知道它爲什麼會返回此錯誤消息?

+0

我剛放棄,因爲我認爲這是不可能的。 XHR.send()返回空響應,這意味着亞馬遜認爲我的重定向URL不是有效的URL。我不知道爲什麼,也找不到有關它的任何文檔:( – maxwell2022 2013-04-30 09:48:17

+0

有同樣的問題,有什麼好運? – 2013-08-27 16:46:19

+0

Nop,I在我的JavaScript代碼中處理客戶端的回調。 – maxwell2022 2013-08-29 06:42:09

回答

0

我也遇到這個問題。似乎沒有人可以解決這個問題like this 也許我找到的最佳解決方法就像this。 看來唯一的解決方法包括第二個xhr請求手動執行回調。因此

success_action_status

應該被使用。如果上傳成功,您將收到201回覆,並且您可以開始第二次實際回叫請求。對我而言,這看起來是目前唯一可能的解決方案。

其他解決方案?