Запрос XMLHttp не обрабатывается - PullRequest
0 голосов
/ 12 февраля 2020

Я пытаюсь принять то, что подсвечивает пользователь, чтобы обработать его для запроса к базе данных. Хотя мне кажется, что я могу успешно получить то, что подсвечивается, похоже, что передача этой информации в реальный запрос к базе данных не происходит. Там нет никаких сообщений об ошибках. Я надеюсь, что где-то есть опечатка, и это легко исправить, при любом сценарии была бы очень благодарна дополнительная пара глаз более опытного человека. Я использую Python Flask для разработки веб-приложения для личного пользования, вот код

{% block content %}
    <head>
        <style>
        div.sticky {
            position: -webkit-sticky;
            position: sticky;
            top: 0;
            float: right;
            width: 30%;
        }
        </style>
    </head>
    <h2 style="text-align: center;">{{ name }}</h2>
    <div class="sticky" id="sticky_display">
        <button type="button" onclick ="getSelectedText()" style="background: darkblue; color: white;">Query Database</button>
        <form name="testform"> 
            <textarea id="selectedtext">
            </textarea> 
        </form>
    </div>
    <div class="row">
        <div class="col-xs-8 col-sm-8 col-md-8 col-lg-8" style="white-space: pre-line;" id="text_display">
            {{ text }}
        </div>
    </div>
    <script>
        function getSelectedText() { 
            var selectedText = ''; 
            if (window.getSelection) { 
                selectedText = window.getSelection(); 
            } 
                // document.getSelection 
            else if (document.getSelection) { 
                selectedText = document.getSelection(); 
            } 
                // document.selection 
            else if (document.selection) { 
                selectedText = document.selection.createRange().text; 
            } else return; 
            function(selectedText) {
                var xhttp = new XMLHttpRequest();
                xhttp.onreadystatechange = function(){
                    if (this.readyState == 4 && this.status == 200) {
                        document.getElementById('selectedtext').value = this.responseText;
                    }
                xhttp.open("POST", "/query_database', true);
                xhttp.send(selectedText);
            }
        }
    </script>
{% endblock %}

1 Ответ

0 голосов
/ 12 февраля 2020

По умолчанию POST отправит

Content-Type: application/x-www-form-urlencoded

, что требует отправки формы в кодировке URL. Похоже, что вы отправляете простой текст, который потребует добавления

xhttp.setRequestHeader('Content-Type', 'text/plain');

перед .send()

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