Jquery ajax возвращается 404 не найден

Я использую Ajax для передачи данных и файлов формы в файл PHP для обработки.

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 определенно существует. Я могу просмотреть его, если я набираю адрес в веб-браузере, однако, когда я отправляю форму, консоль хром возвращает 404.

PHP находится в той же папке, что и HTML-страница, на которой работает JavaScript, поэтому я смущен тем, почему я продолжаю получать 404.

ОБНОВИТЬ

Изменение POST в GET избавляет от ошибки 404, но возвращает 500 Internal Server Error

ОБНОВЛЕНИЕ 2

Изменение действия формы на = «ValidateApplication.php» и отправка ее как обычно (без AJAX) приводит к правильному файлу без каких-либо ошибок.

У меня была такая же проблема, и через 2 часа я искал то, что вызывало ошибку 404 Not Found, я обнаружил, что недавно играл с header() с PHP и забыл удалить следующую строку кода:

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

После удаления его функции Ajax снова стали нормальными.

Это была проблема с объектом FormData . Как только я изменил свой метод на использование .serialize() , страница работала нормально.

 $("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); } }); } 

Попробуйте добавить / перед именем файла: url: '/ValidateApplication.php',

Попробуйте изменить тип запроса с POST на GET и посмотреть, работает ли он.

Попробуйте прокомментировать части кода:

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

Попробуйте другой браузер.