Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/8: Рейтинг темы: голосов - 8, средняя оценка - 4.88
6 / 6 / 5
Регистрация: 15.01.2016
Сообщений: 220

Debug ошибки при использовании AJAX, как?

18.03.2018, 16:31. Показов 1633. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
только начал изучать AJAX. Везде и у всех свои варианты, как им пользоваться. Я выбрал, как мне кажется самый простой. Но даже он выдаёт ошибку. Может при беглом просмотре кода кто-нибудь заметит в каком место я чушь написал, буду благодарен.
Без jQuery всё работает, ну естественно с перезагрузкой страницы и чистым листом.

html
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<form id="contactForm" action="mail.php" method="POST">   
                    <div>
                        <label for="name">Your Name</label>
                        <input name="name" type="name">
                    </div>
                    <div >
                        <label for="mail">Email</label>
                        <input name="mail" type="email">
                    </div>
                    <div >
                        <label for="message">Message</label>
                        <textarea name="message"></textarea>
                    </div>
                    <button id="send" class="btn-style" type="submit">Send</button>
                </form>
PHP

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
if (isset($_POST['name'])) 
{
    $email_to = "**@**.com";
    $email_subject = "MESSAGE";
 
    function died($error) 
    {
        echo "Sorry, but there were error(s) found with the form you submitted. ";
        echo "These errors appear below.<br /><br />";
        echo $error."<br /><br />";
        echo "Please go back and fix these errors.<br /><br />";
        die();
    }
 
    
    if(!isset($_POST['name']) || !isset($_POST['mail']) || !isset($_POST['message'])) 
    {
 
        died('Sorry, but there appears to be a problem with the form you submitted.');       
    }
 
    $name = $_POST['name']; 
    $mail = $_POST['mail'];
    $message = $_POST['message'];
 
    $error_message = "";
    $string_exp = "/^[A-Za-z .'-]+$/";
    
    if (!preg_match($string_exp, $name)) 
    {
        $error_message .= 'The Name you entered does not appear to be valid.<br />';
    }
    if (strlen($message) < 2) 
    {
        $error_message .= 'The Comments you entered do not appear to be valid.<br />';
    }
    if (strlen($error_message) > 0) 
    {
        died($error_message);
    }
    $email_message = "Form details below.\n\n";
 
    function clean_string($string) 
    {
        $bad = array("content-type","bcc:","to:","cc:","href");
        return str_replace($bad,"",$string);
    }
 
    $email_message .= "Name: ".clean_string($name)."\n";
    $email_message .= "Mail: ".clean_string($mail)."\n";
    $email_message .= "Message: ".clean_string($message)."\n";
 
 
    // create email headers
    $headers = 'From: ' .$email_from. "\r\n" . 'Reply-To: '. $email_from."\r\n" .
                          'X-Mailer: PHP/' . phpversion();
    mail($email_to, $email_subject, $email_message, $headers);
jQuery

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$(document).on("submit", "form", function(event)
        {
            event.preventDefault();
            var url = $(this).attr("action");
            $.ajax({
                url: url,
                type: 'POST',
                data: $('#contactForm').serialize(),
                success: function (result)
                {
                    alert('success');
                },
                error: function ()
                {
                    alert("error"); // сюда всё сливается
                }
            });        
        });
Добавлено через 47 минут
Как мне видится, проблема в jquery, ибо без него отправка письма работает.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.03.2018, 16:31
Ответы с готовыми решениями:

Как при включении debug из intellij избавиться от ошибки?
Привет! Может кто знает. При запуске отладчика для веб приложения из intellij первый раз все проходит успешно. Но если завершить...

Ошибка при использовании debug
при использовании debug в codeblocs в консоли высвечивается ошибка,как её исправить? oc:linux ubuntu 14.04

Открытие консоли в WFA при использовании класса Debug
ковыряюсь с классом Debug, возник вопрос... TextWriterTraceListener listener = new...

9
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
18.03.2018, 16:55
Лучший ответ Сообщение было отмечено And82 как решение

Решение

Цитата Сообщение от And82 Посмотреть сообщение
выдаёт ошибку
Покажите текст ошибки.
Цитата Сообщение от And82 Посмотреть сообщение
при беглом просмотре
$(document).on("submit", "form" ... + $('#contactForm').serialize() Звучит следующим образом: "При событии submit на любой форме страницы (пусть их даже будет пару тысяч), данные всё-равно отправлять из формы с ID = "contactForm""

Добавлено через 1 минуту
Цитата Сообщение от And82 Посмотреть сообщение
Как мне видится, проблема в jquery
Очень сомневаюсь
1
6 / 6 / 5
Регистрация: 15.01.2016
Сообщений: 220
18.03.2018, 17:09  [ТС]
Lazy_Den,

Ошибка в консоли

Failed to load file:///C:/***/mail.php: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https. - jquery.min.js:2

так будет правильнее:
JavaScript
1
 $("#contactForm").submit(function(event){
Добавлено через 8 минут
UPDATE

закинул код на сервер, ajax не работает. При нажатии на кнопку всё равно открывается чистый лист и в адресной строке ../mail.php
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
18.03.2018, 17:30
Цитата Сообщение от And82 Посмотреть сообщение
Ошибка в консоли
Похоже, что вы тестируете без локального сервера.
Цитата Сообщение от And82 Посмотреть сообщение
закинул код на сервер, ajax не работает
Теперь в консоли должна быть другая ошибка.
1
6 / 6 / 5
Регистрация: 15.01.2016
Сообщений: 220
18.03.2018, 17:44  [ТС]
Lazy_Den,

нет ошибки
пустая консоль
письмо отсылается, на почту я его получаю.

Добавлено через 7 минут
в Network->XHR тоже пусто
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
18.03.2018, 17:44
Цитата Сообщение от And82 Посмотреть сообщение
пустая консоль
Какая-то несостыковка. Если JS не выдаёт ошибок и при этом не выполняется код при событии submit, то о причинах можно только догадываться: неверно указан селектор формы, несколько форм/элементов с одинаковым ID и т.д..
Цитата Сообщение от And82 Посмотреть сообщение
и в адресной строке ../mail.php
Очень сомнительный путь "../mail.php". Для начала, попробуйте руками прописать адрес к файлу-обработчику на сервере. Указывайте абсолютный путь. Например, от корня сайта: "/path/to/mail.php" или "http://my-site.com/path/to/mail.php" (протокол корректируйте - http или https)
1
6 / 6 / 5
Регистрация: 15.01.2016
Сообщений: 220
18.03.2018, 18:12  [ТС]
Lazy_Den,

после отправки данных в адресной строке получается такая строчка
Code
1
www.mysite.net/mail.php
и соответственно чистый лист. Сам файл
Code
1
mail.php
находится в корневом каталоге вместе с
Code
1
index.html
На самом сайте только одна форма, идентификатор сверил - ошибки нет.

Добавлено через 7 минут
Lazy_Den,
всё, спасибо огромное, разобрался. Иногда нужно с кем то пообщаться, что бы рассмотреть проблему с другой стороны.
я одновременно редактировал код в локалке и на сервере онлайн. На серваке забыл дописать идентификатор к форме "contactForm"
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
18.03.2018, 18:15
Цитата Сообщение от And82 Посмотреть сообщение
забыл дописать идентификатор к форме
Значит я угадал по поводу селектора
1
6 / 6 / 5
Регистрация: 15.01.2016
Сообщений: 220
18.03.2018, 18:51  [ТС]
Lazy_Den,
а то что в локалке выдаёт ошибку, так это изза отсутствия локального сервера, так ведь?
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
18.03.2018, 19:24
Цитата Сообщение от And82 Посмотреть сообщение
изза отсутствия локального сервера
По крайней мере, это самая вероятная причина возникновения такой ошибки в таких случаях. Если пока в ваши планы не входит близкое знакомство с серверами, то можете воспользоваться готовыми сборками. Есть неплохие инструменты, но я бы рекомендовал OpenServer
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.03.2018, 19:24
Помогаю со студенческими работами здесь

Как избавиться от ошибки IE при использовании cufont?
Вставляю так: &lt;script type=&quot;text/javascript&quot; src=&quot;Js/PFAgoraSansPro-Black_900.font.js&quot;&gt;&lt;/script&gt; &lt;script...

Android release keys debug и отладка при использовании платежей
Всем доброго дня! Есть ли возможность отладить приложение в котором реализована подписка/платежи ??? Суть проблемы в том что...

Как устранить ошибки неразрешенный внешний символ при использовании QWebView?
Всем привет! Какие библиотеки мне нужно подключить в пятой версии среды разработки, чтобы устранить кучу ошибок на тему...

Не применяется стиль CSS при использовании Ajax
Имеется сценарий php такого рода: &lt;html&gt; &lt;head&gt; &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt; ...

Не выводится результат MySQL (при использовании AJAX)
При обычной загрузке страницы всё нормально, но при использовании AJAX всё идёт наперекосяк. Т.е. загружается исполняемый скрипт...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru