Ich verwende signed POST
, um die Datei direkt in Amazon S3 hochzuladen. Ich hatte einige Probleme mit der Unterzeichnung der Richtlinie mit PHP, aber endlich behoben und hier ist die sample of code.Verwenden Sie AWS S3 success_action_redirect-Richtlinie mit XHR
Diese xhr Anfrage wird in Javascript gesendet und ich warte auf eine Antwort von Amazon. Zuerst verwendete ich success_action_status
, um es auf 201 zu setzen, um die XML-Antwort zu erhalten.
Was ich tun möchte, ist die Verwendung der success_action_redirect
, um ein Skript auf meinem Server aufzurufen, um einen Datensatz in der Datenbank zu erstellen.
Der Grund, warum ich den Datensatz in der Datenbank erstellen konnte und wenn irgendetwas falsch in diesem Stadium passiert, kann ich eine Fehlermeldung direkt an dieser Stelle zurückgeben. Außerdem erspart es mir eine weitere Ajax-Anfrage an meinen Server.
Also habe ich versucht, dies unter Angabe der success_action_redirect
bis http:\\localhost\callback.php
wo ich ein Skript, das auf einige Parameter wartet.
Aber es sieht so aus, als ob dieses Skript nie aufgerufen wird und die Antwort von xhr.send()
ist leer.
Ich denke, es ist ein Cross-Browser-Problem, und ich frage mich, ob es möglich wäre, jsonp irgendwie zu verwenden, um daran vorbeizugehen? Irgendwelche Ideen?
UPDATE
Anscheinend xhr native folgende Umleitung so sollte es funktionieren, aber wenn ich die success_action_redirect
angegeben gibt es error Server responded with 0 code.
Zuerst dachte ich, es war, weil die Umleitungs-URL auf meinem lokalen Server war so Ich habe es zu einem zugänglichen Server geändert, aber keine Chance.
Wer weiß, warum es diese Fehlermeldung zurückgibt?
Ich habe gerade aufgegeben, wie ich denke, dass es nicht möglich ist. XHR.send() gibt eine leere Antwort zurück, was bedeutet, dass Amazon meinen, dass meine Weiterleitungs-URL keine gültige URL ist. Ich weiß nicht warum und ich kann keine Dokumentation darüber finden :( – maxwell2022
Haben Sie das gleiche Problem, kein Glück? –
Nop, ich Handle den Rückruf auf der Client-Seite, in meinem Javascript-Code. – maxwell2022