Как получить полный ответ, а не только тело, используя await в reactJS

Я использую библиотеку request-promise-native и пытаюсь получить полный ответ на запрос, а не только тело, потому что в заголовке ответа есть что-то, что мне нужно зарегистрировать. Я знаю, что обычно для выполнения этой задачи вы делаете что-то вроде этого:

request.post(opts).then(function (response) { //response }).catch(function (err) { // error })

но я использую Async/await, поэтому мой код выглядит примерно так: const data = await request.post(opts) однако это вернет только тело ответа. Я также хочу получить доступ к заголовку, как мне это сделать?


person Broulaye Doumbia    schedule 29.08.2018    source источник


Ответы (2)


Вы можете использовать выборку:

 const response = await fetch(URL, {
                                   method: 'POST',
                                   headers: {
                                             'Accept': 'application/json',
                                             'Content-Type': 'application/json',
                                            }
                             })

А потом :

const fromHeader = JSON.parse(response.headers.get('header-name'))
person sagi    schedule 29.08.2018
comment
откуда мне импортировать выборку? Кроме того, нет ли способа сделать это с помощью request.post? - person Broulaye Doumbia; 29.08.2018
comment
Может и есть, но я не знаю... Обычно я использую fetch. Вам не нужно импортировать его откуда-либо. - person sagi; 29.08.2018
comment
поэтому, если я предполагаю получить тело от этого, я просто сделаю JSON.parse(response.body) - person Broulaye Doumbia; 29.08.2018
comment
Чтобы получить тело, вам нужно использовать await response.json() @BroulayeDoumbia. - person sagi; 29.08.2018
comment
Я вижу, я попробую это и увижу - person Broulaye Doumbia; 29.08.2018
comment
fetch работал вроде как, но мне пришлось изменить много кода, чтобы приспособиться к этому, я просто добавил опцию resolveWithFullResponse: true в запрос, и это решило мою проблему. Спасибо за помощь. - person Broulaye Doumbia; 29.08.2018

Я использовал опцию resolveWithFullResponse с запросом, и это решило проблему. например resolveWithFullResponse: true

person Broulaye Doumbia    schedule 29.08.2018