почему xmlHttpRequest.Open работает только при вводе строки? - PullRequest
1 голос
/ 08 февраля 2020

Я пытаюсь вызвать службу Restful на моем локальном хосте. Я делаю это так, потому что это асинхронный вызов. Соответствующий URL-адрес плюс шаблон Uri для вызова моей службы:

"http://localhost: 65016 / Service1.svc / SN? Lower = 200 & upper = 300 "

в строке, где я пытаюсь открыть (xhttp.open), моя страница клиента получает правильные данные только тогда, когда я буквально вставляю URL-адрес следующим образом:

xhttp.open("GET", "http://localhost:65016/Service1.svc/SN?lower=200&upper=300" , true);

, но мне нужны числа 200 и 300 быть пользовательским вводом, поэтому я попробовал эти две вещи: сначала я попытался захватить пользовательский ввод и просто соединить его с базовым URL-адресом между шаблоном URi следующим образом:

    <script>
        function ServiceCall()
        {
            var xhttp = new XMLHttpRequest();
            xhttp.onreadystatechange = function ()
            {
                if (xhttp.readyState == 4 && xhttp.status == 200) {
                    var ans = document.getElementById("secretNum");
                    ans.innerHTML = xhttp.responseText;
                }

            }
            var base_uri = "http://localhost:65016/Service1.svc/";

            // grab the lower number
            var ln = document.getElementById("LN").firstChild;
            var LN = ln.nodeValue;

            // grab upper number
            var un = document.getElementById("UN").firstChild;
            var UN = un.nodeValue;

            //complete
            var URL = base_uri + "SN?lower=" + LN + "&upper=" + UN;

            xhttp.open("GET", URL, true);
            xhttp.setRequestHeader("Content-type", "application/json");
            xhttp.send();
        }
</script>

Не работает. Поэтому я попытался просмотреть документацию по xmlHttpRequest.open и увидел, что параметр должен быть URL-адресом. поэтому я попытался использовать функцию URL (строка) и использовать выходные данные в качестве параметра, но это тоже не сработало. Любая помощь, пожалуйста?

1 Ответ

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

Спасибо. Мне это помогло посмотреть сетевой запрос. Я просто использовал неправильный синтаксис, чтобы получить значение внутри входного тега html.

var ln = document.getElementById("LN").value;

возвращает действительное значение внутри html тега ввода, заданного пользовательским вводом. Я отвечаю на свой вопрос, потому что это домашнее задание. (Не то, чтобы я обманывал. Ответ на этот вопрос далек от решения домашнего задания)

...