Попытка воссоздать Python запрос вызова API в JavaScript, используя Fetch with FormData - PullRequest
1 голос
/ 22 марта 2020

Поэтому я пытаюсь воссоздать запрос API в JavaScript, как это делается в настоящее время в Python.

Вот часть программы Python, которая имеет значение:

        self.data = {'id': username,
                     'pass': password}

        self.session_id = self.post(base_url + loginURLtemplate,
                                    data=self.data).headers

Таким образом, запрос POST возвращает все, что мне нужно. Он возвращает sessionid , а также значение соединения 'Keep-Alive' . Это такое же поведение, как в Почтальоне или браузере.

Теперь, когда речь идет о программе JavaScript, которую я написал:

        var formData = new FormData()
        formData.append('id', username)
        formData.append('pass', password)
        var url = base_url

        fetch(url, {
            method: 'POST',
            body: formData,
            credentials: 'include',
            keepalive: true

        })
            .then(r => r)
            .then(data => {
                console.log(data.headers) 
            })

Он возвращает ответ, аналогичный запросу Python, но на этот раз он пропускает sessionid , а также значение соединения установлено на «закрыть» вместо «Keep-Alive»

Я хочу знать, связано ли это с ошибкой в ​​чем-то, что у меня есть написано ИЛИ , если это является недостатком использования Fetch Web API в JavaScript. Похоже, он успешно подключается к серверу, но получает ответ, который не действует так, как браузер отправил запрос (как это делает запрос Python)

...