Чрезвычайно ошибочное c поведение приложения QML с XMLHttpRequest () - PullRequest
0 голосов
/ 25 мая 2020

У меня есть приложение QML, которое должно взаимодействовать с сервером через RESTful API. Я использую веб-интерфейс javascript s XMLHttpRequest(). Код выглядит следующим образом:

function deleteTask(taskId) {
    const suffix = "/deleteTask"
    let response
    var xhr = new XMLHttpRequest()

    xhr.onreadystatechange = function() {
        if (xhr.readyState === XMLHttpRequest.DONE) {
            response = JSON.parse(xhr.responseText.toString())
            console.log("Delete task response recieved.")
            console.log("XHR Status: ", xhr.status)
            console.log("Response:")
            console.log(JSON.stringify(response, null, 2))

            if (xhr.status === 200) {
                // Success
                console.log("Delete task request fulfilled.")
            } else {
                console.log("deleteTask: Undefined behaviour happened.")
            }
        }
    }

    xhr.open("DELETE", url + suffix + "/" + taskId, true)
    xhr.setRequestHeader("Content-type", "application/json")
    xhr.setRequestHeader("Authorization", accessToken)

    xhr.send()
    console.log("Delete task request sent.")
}

url - это URL-адрес сервера, а accessToken - токен доступа, предоставленный сервером. Эта функция полностью соответствует спецификации API отправляемого мной запроса, но сервер отвечает, как если бы заголовок Authorization не был установлен.

Вот где начинается чрезвычайно ошибочное поведение c: если я конвертирую эту функцию в команду curl в своей оболочке, она работает отлично (об этом свидетельствует ответ сервера). Команда curl и эта функция javascript имеют одинаковое значение (точно такой же запрос), но одна работает, а другая - нет.

Вот команда curl: curl -X DELETE "http://localhost:8080/api/1.0/deleteTask/93a34091-e913-4929-b445-c3db58b42ae9" -H "accept: application/json" -H "Content-type: application/json" -H "Authorization: *access token goes here*"

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