Форум программистов, компьютерный форум, киберфорум
Node.js
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 15.11.2018
Сообщений: 33
1

Не работает redirect после preventDefault

19.02.2020, 20:53. Показов 1010. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Отправляю данные формы на сервер с помощью JQuery POST запроса,чтобы страница не перегружалась использую event.preventDefault(), а затем Express с помощью Sequelize и модели книги(Book) вставляет данные в бузу данных MySql, но вот беда, после того как вставляется книга, не идет redirect на главную сайта(корень сайта), помогите пожалуста, как забить на сервере, после вставки новой книги, редирект на главную?

Вот форма:
HTML5
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
<form  method="POST" class="formCreate" id="createForm">
        <h1>Добавление книги</h1>
        <label>BookAuthor</label><br>
        <input name="BookAuthor" id="BookAuthor" class="field" required
            pattern="^[A-ZА-Я][a-zа-я]+([ -][A-ZА-Я][a-zА-я]+)*$" /><br><br>
 
        <label>BookName</label><br>
        <input name="BookName" id="BookName" class="field" required
            pattern="^([A-Za-zА-я1-9])+([ -][A-Za-zА-я1-9]+)*$" /><br><br>
 
        <label>BookPublisher</label><br>
        <input name="BookPublisher" id="BookPublisher" class="field" required
            pattern="^([A-Za-zА-я1-9])+([ -][A-Za-zА-я1-9]+)*$" /><br><br>
 
        <label>BookPrice</label><br>
        <input name="BookPrice" id="BookPrice" type="number" class="field" min="0.00" max="1000000.00" step="0.01"
            required /><br><br>
 
        <label>BookQuantity</label><br>
        <input name="BookQuantity" id="BookQuantity" type="number" class="field" min="1" max="1000000"
            required /><br><br>
 
        <label>BookVolume</label><br>
        <input name="BookVolume" id="BookVolume" type="number" class="field" min="1" max="1000000" required /><br><br>
 
        <input type="submit" value="Отправить" />
        <br>
        <a href="/">К списку книг</a>
    </form>
Вот код JQuery
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
$("#createForm").submit((event) => {            
            event.preventDefault();
            var data = {
                BookAuthor: $('#BookAuthor').val()+"232",
                BookName: $('#BookName').val(),
                BookPublisher: $('#BookPublisher').val(),
                BookPrice: $('#BookPrice').val(),
                BookQuantity: $('#BookQuantity').val(),
                BookVolume: $('#BookVolume').val()
            };
            $.post('/postAddBook',data,(res) => { }, 'json');
        });
Контроллер postAddBook
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
exports.postAddBook = function (req, res) {
    if (!req.body) return res.send("Error");
    console.log("Новая книга: ", req.body);
    var result = req.body;
    // console.log(result.BookAuthor, result.BookName, result.BookPublisher, result.BookPrice, result.BookQuantity, result.BookVolume);
    Book.create({
        BookAuthor: result.BookAuthor,
        BookName: result.BookName,
        BookPublisher: result.BookPublisher,
        BookPrice: result.BookPrice,
        BookQuantity: result.BookQuantity,
        BookVolume: result.BookVolume
    }).then(() => {
            console.log("create");
            res.redirect("/")
        }).catch(err => console.log(err));
};
Почему не происходит
Javascript
1
res.redirect("/")
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.02.2020, 20:53
Ответы с готовыми решениями:

Response.Redirect работает только после обновления страницы.
У меня есть страница ASP 1 в который выводится некоторая информация из базы данных. С этой...

Ajax не работает функция (preventDefault)
На моем сайте не работает функция &quot;preventDefault()&quot; (localhost) XAMPP. На другом сайте есть...

Ajax не работает функция (preventDefault) - jQuery
Добрый день, подскажите, почему не отсылает форму? --- $('form#form2').submit(function(e) {...

Не работает Redirect() и RedirectToRoute()
Доброго времени суток. Столкнулся с такой проблемой. Не могу сделать переадресацию по нажатию на...

2
81 / 40 / 22
Регистрация: 03.05.2013
Сообщений: 713
25.02.2020, 23:48 2
Javascript
1
res.redirect(301, '/')
console.log("create") срабатывает?
0
Coding is art
Эксперт JS
536 / 420 / 153
Регистрация: 04.09.2013
Сообщений: 1,056
02.03.2020, 01:28 3
с чего вы взяли что он не срабатывает?
Точнее будет даже спросить, где вы хотите что бы редирект происходил? в браузере? тогда вам либо нужно убрать event.preventDefault() и ajax ($.post('/postAddBook', часть) из javascript или делать редирект самому в обработчике ответа от сервера...

Редирект срабатывает, но он срабатывает не на окно браузера, а на ajax запрос, который вы делаете.. Если откроете панель разработчика и посмотрите нетворк вкладку, то должны будете увидеть, что ваш запрос отправляется и как ответ ему приходит главная страница..

Для понимания почитайте как ajax работает, зачем и как его правильно использовать.
0
02.03.2020, 01:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2020, 01:28
Помогаю со студенческими работами здесь

Не работает Redirect 301
Сайт на joomla. Необходимо сделать редирект страницы с регистрацией на главную страницу сайта....

Не работает Response.Redirect
Есть компьютер под Windows Server 2008 sp2, стоит iis 7 На нём расположен сайт в папке...

Redirect после отправки формы
Доброго времени суток, подскажите пожалуйста, как мне сделать редирект! код весь работает, после...

Redirect после return - возможен?
Добрый день! В контроллере есть post-метод: public ActionResult Wait(Guid? id) { .... return...

Добавить на форму заголовок после redirect'a
Добрый день, Уважаемые форумчане! Подскажите, как добавить заголовок на форму в случае, если не...

Express: AJAX POST - redirect - GET. Не работает
Добрый день Как делать правильно перенаправление с помощью AJAX POST + express вместо...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru