Захватите ответ от GET и используйте его в следующем запросе - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь использовать ответ axios.get и использовать его в axios.post. Как я могу использовать ответ в качестве заголовка в запросе POST?

Я пытался использовать axios.post с headers, определенным в конфигурации запроса:

var config = {
  headers: {
    'Access-Control-Allow-Origin': '*',
    'user': newUser.eid,
    'pass':'bd957c3fbb'
  }
}

/*
const axios = require('axios')

getCrumb() {
  return axios.get('https://jenkins.com/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)', config)
  .then(response => {
    return response
  })
}
*/


/* code to get jenkins crumb */
const getJenkinsCrumb = () => {
  try {
    return axios.get('https://jenkins.com/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)', config)
      .then((crumbValue) => {
        console.log(crumbValue.data);
      })
  } catch (error) {
    console.log(error)
  }
}
getJenkinsCrumb();

Я хочу использовать ответ от предыдущего запроса GET (выше) в качестве заголовка в вызове POST (ниже).

var crumbHeader = {
  headers: {
    'Access-Control-Allow-Origin': '*',
  }
}

/* post api to kick off the build */

try {
  return axios.post('https://abc123:bd95701859@jenkins.com/job/Non- PAR/job/Non-Prod-Jobs/job/uitest/job/TestJob/buildWithParameters?nodes=100000&clustername=clustername', crumbHeader)
    .then((postKickTest) =>{
      console.log(postKickTest.data);
    })
} catch (error) {
  console.log(error)
}

1 Ответ

0 голосов
/ 26 июня 2019

Конфигурация Axios включает свойство headers для указания заголовков запроса.Конфигурация может быть указана как 2-й аргумент axios.post() (если используется подпись с двумя аргументами) или 3-й аргумент (если используется подпись с тремя аргументами).В этом примере демонстрируется подпись с двумя аргументами axios.post(), которая устанавливает headers с результатом данных предыдущего запроса:

export default {
  methods: {
    async sendRequest() {
      const userResp = await axios.get('https://reqres.in/api/users/2')
      await axios.post('https://reqres.in/api/users', {
        headers: userResp.data,
        data: {
          name: 'john doe',
          job: 'leader',
        }
      })
    },
  }
}

demo


Примечание: Access-Control-Allow-Origin - это заголовок CORS, который может быть установлен только сервером.Это не имеет никакого эффекта при отправке от клиента.Возможно, вы ошибочно полагаете, что заголовок не достигает сервера, поскольку он не решает проблему CORS.

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