Ich möchte nur sagen, dass Ajax und JQuery in meinem Kopf wirklich vage sind, also lerne ich immer noch. Allerdings verstehe ich ein wenig die Idee dahinter einfach nicht die Funktionalitäten im Detail.Ich sende eine Ajax Anfrage, aber ich bekomme keine Antwort von meiner .php Datei?
Mein Beispiel hier ist, dass ich diese Eingabetyp-Datei haben:
<input id="photo" type="file" capture="camera" accept="image/*">
Und ich versuche, einfach die Datei durch Ajax-Anfrage zu schicken. Hier ist mein Code:
$(document).ready(function() {
$("#photo").change(function() {
var file = $("#photo").prop('files')[0];
var data = new FormData();
data.append(file.name, file);
$.ajax({
type: 'POST',
url: 'php.php',
processData: false,
contentType: false,
data: data,
success: function() {
alert("It was a success");
},
error: function(jqXHR, textStatus, errorThrown) {
console.log('jqXHR:');
console.log(jqXHR);
console.log('textStatus:');
console.log(textStatus);
console.log('errorThrown:');
console.log(errorThrown);
}
});
});
});
Alles scheint zu funktionieren, das Antwort-Status Ajax 200 zurück, aber ich fühle mich nicht wie es mit meinem PHP interagieren.
Hier ist meine php:
<?php
echo $_FILES['file']['type'];
echo "COME ON WORK";
?>
Ist es möglich, dass es etwas mit Same Origin Policy zu tun hat? Ich schaute mich um und fand ähnliche Fragen.
Was tatsächlich geschieht, wenn der Eingang geändert wird? Erhalten Sie den Erfolgsalarm? Was lässt dich denken, dass es nicht interagiert? – MCMXCII
Grundsätzlich nichts, ich bekomme nur die Warnung "Es war ein Erfolg" und das ist es so ziemlich. Ich inspizierte die Konsole auch und keine Informationen kommt ... – antHak
Wenn Sie Ajax verwenden, müssen Sie einen Wert für die Antwort zurück aus der PHP-Datei zuweisen. Versuchen Sie, Ihre Erfolgsfunktion wie folgt zu ändern: Erfolg: Funktion (xhr) {console.log (xhr);} Und dann überprüfen Sie die Konsole, um zu sehen, was zurückkommt. – MCMXCII