Я пытаюсь подключить простую HTML-форму с помощью JQuery и PHP. Однако я столкнулся со следующей ошибкой:
jquery.min.js:2 POST http://127.0.0.1:8887/form.php 404 (Not Found)
script.js
$("#form").submit(function (e) {
e.preventDefault();
}).validate({
rules: {
name: {
required: true,
},
email: {
required: true,
email: true
},
subject: {
required: true,
},
message: {
required: true,
},
},
submitHandler: function () {
// alert("enter");
var form = $('#form');
var formData = $(form).serialize();
$.ajax({
type: 'POST',
url: '../form.php',
data: formData
}).done(function (response) {
// Clear the form.
$('#name').val('');
$('#email').val('');
$('#message').val('');
});
return false; //This doesn't prevent the form from submitting.
}
});
Структура каталогов:
16/07/2018 03:22 AM <DIR> .
16/07/2018 03:22 AM <DIR> ..
23/06/2018 05:48 PM <DIR> .git
14/05/2018 03:37 PM 11 .gitignore
21/06/2018 03:00 PM <DIR> .sass-cache
14/05/2018 03:09 PM <DIR> .vscode
21/06/2018 03:00 PM <DIR> bulma
14/05/2018 03:09 PM <DIR> content
14/05/2018 03:09 PM <DIR> css
16/07/2018 03:22 AM 66 form.php
15/07/2018 06:57 PM <DIR> img
16/07/2018 03:03 AM 31,166 index.html
12/05/2018 07:55 PM 45 index.php
15/07/2018 06:57 PM <DIR> js
16/07/2018 03:22 AM <DIR> php
27/05/2018 12:16 PM 378 README.md
Папка js состоит из файла script.js, который вызывает form.php в каталоге. Как мне правильно указать скрипту ajax на правильный файл php? Если это помогает, я использую плагин Chrome Webserver для имитации веб-сервера, поскольку Chrome не позволяет скриптам php открывать index.html в виде файлов.
вы используете какой-нибудь фреймворк?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Кажется, проблема с веб-сервером Chrome, я не уверен, может ли он обрабатывать файлы php и обслуживать их.
Попробуйте настроить свой form.php на встроенный php-сервер:
внутри вашей структуры каталогов выполните:
php -S localhost:80
Затем измените URL-адрес из вашего jquery-скрипта:
submitHandler: function () {
// alert("enter");
var form = $('#form');
var formData = $(form).serialize();
$.ajax({
type: 'POST',
url: 'http://localhost/form.php',
data: formData
}).done(function (response) {
// Clear the form.
$('#name').val('');
$('#email').val('');
$('#message').val('');
});
return false; //This doesn't prevent the form from submitting.
}
просто используйте form.php и проверьте его один раз