Axios получил ответ на запрос с ошибкой 403 - PullRequest
0 голосов
/ 18 марта 2019

Я новичок в реакции. Попытка сделать запрос «get» и получение ошибки 403 запрещено: «Ответ на предпечатную проверку не имеет статуса HTTP ok.». На вкладке сети в методе запроса вместо метода «get» отображаются «опции» В чем может быть проблема? Корс уже открыт, проблема с токеном

let token = localStorage.getItem("token")
axios
  .get("http://dev.*****************get-template", {
    headers: {
      Authorization: `Bearer + ${token}`,
    },
  })
  .then(res => {
      console.log("Success")
  })
  .catch(error => {
    console.log(error)
  })

enter image description here

enter image description here

Вот как я сохраняю токен. Может быть я не правильно сохраняю это в localStorage? Но когда console.log показывает нормально

 event.preventDefault()
    const formdata = new FormData()
    formdata.append("username", this.state.userLogin.email)
    formdata.append("password", this.state.userLogin.password)
    axios
      .post("http://dev.****************/get-token", formdata)
      .then(res => {
        if (res.data) {
          console.log(res.data)

          localStorage.setItem("token", res.data.access_token)
          localStorage.setItem("updToken", res.data.update_token)
          this.props.history.push("/settings")
        }
      })
      .catch(error => {
        console.log(error)
      })

Ответы [ 3 ]

3 голосов
/ 18 марта 2019

Я вижу проблему в вашем токене на предъявителя

вы пишете:

 Authorization: `Bearer + ${token}`

, но это должно быть:

Authorization: `Bearer ${token}`,

, и полный ответ:

let token = localStorage.getItem("token")

axios
  .get("http://dev.*****************get-template", {
    headers: {
      Authorization: `Bearer ${token}`, //here remove + in template litereal
    },
  })
  .then(res => {
      console.log("Success")
  })
  .catch(error => {
    console.log(error)
  })
0 голосов
/ 18 марта 2019

Сделай так:

let token = localStorage.getItem("token")
axios.defaults.headers.common['Authorization'] = token

axios
  .get("http://dev.*****************get-template")
  .then(res => {
      console.log("Success")
  })
  .catch(error => {
    console.log(error)
  })
0 голосов
/ 18 марта 2019

Это связано с проблемой CORS.

Чтобы решить эту проблему, вам необходимо установить заголовок Access-Control-Allow-Origin на стороне сервера, разрешив домен, из которого вы отправляете запрос, или вы можете установить его на *

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