GET-запрос работает в почтальоне, но не работает с Axios - PullRequest
2 голосов
/ 11 ноября 2019

Я отправляю GET-запрос на ту же конечную точку с теми же заголовками, включая Bearer, но в то время как я получаю 200 и правильный JSON в результате при звонке из Postman, когда я отправляю запрос, используя Axios в моем (Vue) проект я получаю 302.

вызов из локального проекта, работающего на localhost: 8080 (в случае его полезности) выглядит следующим образом:

  const { authToken, userID } = store.getters.authUser
  const config = {
    method: 'get',
    url: '/' + userID,
    headers: {
      Authorization: `Bearer ${authToken}`,
      'Content-Type': 'application/json'
    }
  }
  axios(config)
    .then(res => {
      console.log(res)
      return res
    })
    .catch(e => {
      console.log(e)
    })

в то время как в почтальоне все, что я делаю, этосоздайте запрос GET с тем же URL-адресом, и все, что я добавляю в заголовки, это «Носитель ...»

ошибка, которую я получаю от axios:

Error: Network Error
    at createError (createError.js?2d83:16)
    at XMLHttpRequest.handleError (xhr.js?b50d:87)

и статус ответа302, есть идеи, что здесь происходит?

оба значения userID и authToken существуют и равны тем же значениям, которые я использовал с почтальоном, то же самое относится и к URL

1 Ответ

0 голосов
/ 11 ноября 2019

Как вы сказали

запрос отправляется на другой сервер

я думаю, что страница, на которой выполняется вызов axios, и ресурс, который запрашиваетсяв запросе axios находятся на разных доменах. Это будет означать, что запрос является запросом перекрестного происхождения. В этом случае браузер выполнит предварительный запрос (запрос GET - это не простой запрос в смысле CORS из-за наличия заголовка Authorization). В этом случае ваш ресурс должен поддерживать CORS , что означает, что вам нужно установить заголовок Access-Control-Allow-Origin, а HTTP-метод OPTIONS должен быть обработан для предварительного запроса.

...