ajax form submit funktioniert nicht auf iPhone Safari
Ich habe ein Formular erstellt, das dem Benutzer erlaubt, um ein Foto auszuwählen. Bei der Auswahl des Formulars automatisch per ajax (im Gegensatz zu einem standard-submit-button). Es funktioniert in allen Browsern, aber es funktioniert nicht auf der mobilen version von safari.
Mein HTML:
<form id="myForm" action="php/upload.php" method="post">
<input name="uploadedfile" type="file" id="uploadPhotoButton"/>
</form>
Meine javascript:
$(':file').change(function(){
var formData = new FormData($('form')[0]);
$.ajax({
url: 'php/upload.php', //server script to process data
type: 'POST',
success: uploadComplete,
//Form data
data: formData,
//Options to tell JQuery not to process data or worry about content-type
cache: false,
contentType: false,
processData: false
});
});
Auf dem iPhone Safari, der change handler-Funktion aufgerufen wird, in Ordnung, aber der ajax-Aufruf fehlschlägt.
Irgendwelche Vorschläge?
- OK, es stellt sich heraus, dass der Aufruf von ajax ist in Ordnung, aber aus irgendeinem Grund das php-Skript ruft es versagt nur auf dem iPhone-Safari, wenn Sie versucht, die Datei hochzuladen:
$target_path = "../uploads/"; $target_path = $target_path . basename( $_FILES['uploadedfile']['name']); if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) { } else{ }
move_uploaded_file ist die Rückgabe false.
Du musst angemeldet sein, um einen Kommentar abzugeben.
So scheint es, dass in iOS6 safari-caches post nennt... Die Lösung ist hier: Ist Safari auf iOS-6-caching -$.ajax Ergebnisse?