Не удается изменить содержимое HTML после публикации JSON с помощью AJAX - PullRequest
0 голосов
/ 08 октября 2019

Я использую колбу для написания небольшого веб-сайта и использую Почтальона для отправки почтового запроса

app.py

@app.route('/index', methods=['GET', 'POST'])
def index():
    if session["logged_in"]:
        return render_template('index.html')
    else:
        return redirect(url_for('login'))

@app.route('/get_msg', methods = ['POST'])
def get_msg():
    time_toshow = request.get_json(force = True)
    return time_toshow

index.html (основная часть)

    <script>
        $(document).ready(function(){
            $.ajax({
                url: "{{url_for('get_msg')}}",
                type: 'post',
                dataType: 'json',
                contentType: 'application/json',
                success: function (data) {
                    $('#shown').html(data);
                    console.log(data);
                },
            });
        })
    </script>
</head>
<body>
    <h1 id='shown' class='blackshadow' style="font-size: 80px">Good</h1>
</body>

Веб-страница никогда не обновляется после отправки почтового запроса почтальоном. Почтовый запрос, который я отправляю на http://127.0.0.1:5000/get_msg:

{"AbnormalTime": "5000"}

Консоль также ничего не регистрирует

1 Ответ

1 голос
/ 08 октября 2019

Попробуйте это:

$.ajax({
    url: "{{url_for('get_msg')}}",
    type: 'post',
    dataType: 'json',
    contentType: 'application/json',
    data: JSON.stringify(time_toshow),
    success: function (data) {
        $('#shown').html(JSON.stringify(data));
        console.log(data);
    },
});

Обратите внимание на JSON.stringify (), как в функции успеха, так и при передаче данных.

Если вы не используете JSON.stringify (), ваш JSON преобразуется в AbnormalTime = 5000 вместо {"AbnormalTime": "5000"}, поэтому сервер возвращает ошибку 400 (неверный запрос). Смотри здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...