Узел js jquery ajax

У меня есть следующий код на aap.js с маршрутом к '/ bio_post'. Я пытаюсь опубликовать текст на основе своего веб-сайта с помощью jquery ajax. Проблема, с которой я столкнулся, заключается в том, что jquery выбирает объекты, которые поступают из / bio_post, как неопределенные. Мне было интересно, можете ли вы указать мне правильное направление. Спасибо за ваше время и усилия.

app.post('/bio_post', function (req, res) {


    // Get user input value

    let update_bio = req.body.user_bio;

    // Check if the input isn't empty
    if (update_bio !== "") {

        // Connect to mysql database

        mysql_connection.query("UPDATE users SET user_bio = ? WHERE id = ?", [update_bio, session_id], function (err, rows) {
            if (err) {
                let obj_error = {err: err};
                res.send(obj_error.err);
            } else {

                // Check if the post was successfully inserted into the database
                if (rows.changedRows === 1) {
                    let id = {id: session_id};
                    res.redirect("/profile/" + JSON.stringify(id.id));
                    console.info("bio post id is: " + JSON.stringify(id.id));
                    /*let msg_success = {id: session_id, success_msg: 'Bio successfully inserted!'};
                    res.send(msg_success);*/

                } else {
                    let id = {id: session_id};
                    let msg_error = {msg_err: 'No changes were made to your bio.'};
                    res.send(JSON.stringify(msg_error.msg_err));
                    console.info("bio post id is: " + JSON.stringify(id.id));
                }

            }
        });
    }else{
        //res.render("settings", {u_id: session_id, logged_in_user: session_username, bio: '', bio_msg: "Bio field cannot be empty."});
        res.send("Bio field is empty");
    }
});

Ниже приведен код для jquery.

/**Set up URL route variable**/

           let url = '/bio_post';

           /**Set up Ajax callback**/

           $.ajax({
               url: url,
               type: 'POST',
               data: {user_bio: user_bio.val()},
               success: function (data) {

                   if (data.msg_err){

                       success_bio_handler.hide();
                       error_bio_handler.fadeIn().text(data.msg_err).delay(5000).fadeOut();

                   } else {
                       error_bio_handler.hide();
                       //success_bio_handler.fadeIn().text(data.success_msg).delay(5000).fadeOut();
                       //window.location.href = '/profile/' + data.id;
                       console.info(data.id); /***COMES OUT AS UNDEFINED****/
                   }


               }
           });

И, наконец, HTML-файл.

<!--ADD OR UPDATE BIO-->

    <div id = "add_update_bio_title"><strong>Add or Update Bio</strong></div>
    <div id = "add_update_bio_panel">

        <form id = "frm_add_update_bio" action = "/bio_post" method = "post"><br />
            <div class = "py-5 w-100">
                    <div class = "row">
                        <div class = "col-md-4"></div>
                        <div class = "col-md-4">
                            <p id = "error_bio_handler" class = "alert-danger collapse">Error</p><!--jQuery error handler-->
                            <p id = "success_bio_handler" class = "collapse" style = "background-color: #00AA88; color: white;"></p><!--jQuery success handler-->
                            <form class = "">
                                <div class = "form-group">
                                    <!--Check if user has entered a bio-->
                                    <div class = "alert-danger"><%= typeof bio_msg !== 'undefined' ? bio_msg : '' %></div><br />
                                    <% if (bio){%>

                                    <textarea class = "form-control" rows = "5" id = "user_bio" name = "user_bio" placeholder = "Write a little something about yourself"><%- bio%></textarea>

                                    <%} else{%>

                                    <textarea class = "form-control" rows = "5" id = "user_bio" name = "user_bio" placeholder = "Write a little something about yourself"></textarea>

                                    <%}%>
                                </div>
                                <div class = "form-group"></div>
                                <div class = "form-group"></div>
                                <button id = "btnSubmitBio" type = "button" class = "btn btn-primary">Add or Update Bio</button>
                            </form>
                        </div>
                        <div class = "col-md-4"></div>
                    </div>
            </div>
        </form>
    </div>

    <!--END ADD OR UPDATE BIO-->

Что ж, вы перенаправляете запрос Ajax после успешной вставки, я не думаю, что это может сработать ?

Patrick Hund 29.07.2018 23:23

О, я вижу. Итак, почему он выглядит как undefined, потому что он перенаправляется, и ajax ничего не может найти? Ржу не могу

user5828287 29.07.2018 23:29

Так что, полагаю, я не пробовал запускать ваш код. Попробуйте вернуть что-нибудь с помощью res.send, а затем выполните перенаправление на стороне клиента.

Patrick Hund 29.07.2018 23:30
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
42
0

Другие вопросы по теме