wake-up-neo.net

Jquery Ajax, der 404 zurückgibt, wurde nicht gefunden

Ich verwende Ajax, um meine Formulardaten und Dateien zur Verarbeitung an eine PHP -Datei zu übergeben.

Javascript :

$("form#applyform").submit(function(){

var data = new FormData();
jQuery.each($('#file')[0].files, function(i, file) {
    data.append('file-'+i, file);
});

$.ajax({
    url: 'ValidateApplication.php',
    data: data,
    cache: false,
    contentType: false,
    processData: false,
    type: 'POST',
    success: function(data){
        alert(data);
    }
});

}

ValidateApplication.php existiert definitiv. Ich kann es anzeigen, wenn ich die Adresse in den Webbrowser eingebe. Wenn ich jedoch das Formular absende, gibt Chrome Console 404 zurück.

Das PHP befindet sich im selben Ordner wie die HTML-Seite, auf der JavaScript ausgeführt wird. Deshalb bin ich verwirrt, warum ich immer eine 404-Datei bekomme.

AKTUALISIEREN

Durch Ändern von POST in GET wird der 404-Fehler beseitigt, es wird jedoch ein Fehler mit dem internen 500-Server zurückgegeben

UPDATE 2

Wenn Sie die Aktion des Formulars in = "ValidateApplication.php" ändern und es als normal (ohne AJAX) übergeben, wird die korrekte Datei ohne Fehler angezeigt. 

6
Ashwin Sekar

Es schien ein Problem mit dem Objekt FormData zu sein. Nachdem ich meine Methode geändert hatte, um stattdessen .serialize() zu verwenden, funktionierte die Seite einwandfrei.

$("form#applyform").submit(function(){

    var data = $("form#applyform").serialize();
    jQuery.each($('#file')[0].files, function(i, file) {
        data.append('file-'+i, file);
    });

    $.ajax({
        url: 'ValidateApplication.php',
        data: data,
        cache: false,
        contentType: false,
        processData: false,
        type: 'POST',
        success: function(data){
            alert(data);
        }
    });
}
3
Ashwin Sekar

Ich hatte das gleiche Problem und nach zwei Stunden Suche nach dem Fehler 404 Not Found stellte ich fest, dass ich kürzlich mit der header() von PHP spielte und hatte vergessen, die folgende Codezeile zu löschen: 

header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); 

Nach dem Löschen waren meine Ajax-Funktionen wieder normal.

3
CIRCLE

Für mich war es so, dass ich ein Eingabefeld mit name="name" verwendet habe, was dazu führte, dass die aufgerufene Seite eine 404 zurückgab. Seltsames Zeug, hoffe, das hilft jemandem.

2
Tom Walter

Bitte überprüfen Sie, ob Sie das Attribut name = "" ordnungsgemäß in der Form .__ angegeben haben. Formularübergabe validiert alle Bean-Attribute vom Namensattribut der Eingabe

Fügen Sie vor dem Dateinamen ein/hinzu: Url: '/ValidateApplication.php',

Ändern Sie den Anfragetyp von POST in GET und prüfen Sie, ob dies funktioniert.

Versuchen Sie, Teile des Codes zu kommentieren:

/*cache: false,
contentType: false,
processData: false,*/

Versuchen Sie es mit einem anderen Browser.

0
Greg K