Jquery Ajax-запрос к Flask

Я следил за Учебником по отправке запросов AJAX с помощью jQuery в Flask, который на самом деле был успешным. Но после игры с AJAX кажется, что я не все понял об этой системе.

Мой js-файл:

$.ajax({
        data : {
            name : $('#nameInput').val(),
            email : $('#emailInput').val(),
            test : $('#test').val()

        },
        type : 'POST',
        url : '/process',
        contentType: 'application/json'
    })
    .done(function(data) {

        if (data.error) {
            $('#errorAlert').text(data.error).show();
            $('#successAlert').hide();
        }
        else {
            $('#successAlert').text(data.name).show();
            $('#errorAlert').hide();
        }

    });

Теперь у моих данных есть три поля ввода текста, два из них в форме, одно из них просто тег:

<form class = "form-inline">
  <div class = "form-group">
    <label class = "sr-only" for = "emailInput">Email address</label>
    <input type = "email" class = "form-control" id = "emailInput" placeholder = "Email">
  </div>
  <div class = "form-group">
    <label class = "sr-only" for = "nameInput">Name</label>
    <input type = "text" class = "form-control" id = "nameInput" placeholder = "First Name">
  </div>
  <button type = "submit" class = "btn btn-default">Submit</button>
</form>
<br>
<input type = "text" id = "test" placeholder = "Test">
<br>

Теперь, если я правильно понимаю, то для jquery не имеет значения, где находятся поля ввода в HTML-документе, он найдет мой id-тег и привяжет его к моему объекту данных. Но по какой-то причине при попытке прочитать мой почтовый запрос в моем приложении фляги он не может прочитать мой объект.

Вот моя фляжная функция @route:

@app.route('/process', methods=['POST'])
def process():
test = request.form['test']
email = request.form['email']
name = request.form['name']

if name and email:
    newName = test[::-1]
    return jsonify({'name' : newName})
return jsonify({'error' : 'Missing data!'})

Странная часть заключается в том, что при удалении всех моих «тестовых» тегов и оставлении только электронной почты и имени мой код работает. Только если я помещу туда тестовый ввод и строку jquery test:$('#test').val() и строку в моем коде python test = request.form['test'], это сработает.

Какую деталь я упускаю? Я много чего там пробовал

добавьте dataType: 'json' или взгляните на $.post

gaetanoM 05.03.2019 22:35

Одна проблема заключается в том, что вы устанавливаете contentType: 'application/json', но отправляете application/x-www-form-urlencoded. В любом случае, сделайте правильную отладку и просто запишите содержимое request.form

Chris G 05.03.2019 22:35
Поведение ключевого слова "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) для оценки ваших знаний,...
0
2
52
0

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