2016-06-29 5 views
1

Здравствуйте, я хочу получить ответный заголовок после запроса POST запроса. Я попытался отладить, чтобы увидеть, что внутри response с console.log(response). Я могу получить тела ответа от responseData, но я понятия не имею, как получить заголовок. Я хочу получить как заголовок, так и тело. Пожалуйста помоги. спасибо :)Как получить ответ заголовка в ответ на собственный андроид?

Вот пример того, что я сделал:

fetch(URL_REGISTER, { 
 
     method: 'POST', 
 
     body: formData 
 
    }) 
 
     .then((response) => response.json()) 
 
     .then((responseData) => { 
 
     if(responseData.success == 1){ 
 
      this.setState({ 
 
      message1: responseData.msg, 
 
      }); 
 
     } 
 
     else{ 
 
      this.setState({ 
 
      message1: responseData.msg, 
 
      }); 
 
     } 
 
     }) 
 
     .done(); 
 
    },

ответ

3

вы можете сделать, как это

fetchData() { 
    var URL_REGISTER = 'https://www.example.com'; 
    fetch(URL_REGISTER, {method: 'POST',body: formData}) 
     .then(
      function(response) { 
       console.log(response.headers.get('Content-Type')); 
       console.log(response.headers.get('Date')); 

       console.log(response.status); 
       console.log(response.statusText); 
       console.log(response.type); 
       console.log(response.url); 
       if (response.status !== 200) { 
        console.log('Status Code: ' + response.status); 
        return; 
       } 

       // Examine the text in the response 
       response.json().then(function(data) { 
        console.log(data); 
       }); 
      } 
    ) 
     .catch(function(err) { 
      console.log('Fetch Error', err); 
     }); 
} 

Подробнее о выборки: Introduction to fetch()

+0

Спасибо, это мне очень помогает :) – sptra

+1

Важно также отметить что из-за [стандартов W3] (https://www.w3.org/TR/cors/#terminology) используются только 'Cache-Control',' Content-Language', 'Content-Type',' Expires', 'Last -Modified' и 'Pragma' доступны при выполнении запросов за пределами домена. –

2

Вы можете взять заголовки из response.headers

fetch(URL_REGISTER, { 
    method: 'POST', 
    body: formData 
}) 
    .then((response) => { 
    console.log(response.headers); //Returns Headers{} object 
} 
+0

я пытался редактировать как этот '.then ((ответ) => {console.log (response.headers); response.json()}) ', но когда я запустил его, он покажет мне ошибку, потому что он не читает' response.json() '. Есть идеи? – sptra

+0

@sptra, '.json()' возвращает обещание, поэтому для получения ответа как JSON вам нужно выполнить обещание: '.then (function (response) { console.log (response.headers); return response .json(); }), затем (function (json) { console.log (json); }). catch ... ' –

0

Вы должны вернуть response.json() как
return response.json();

Смежные вопросы