как установить заголовки iniside axios - PullRequest
0 голосов
/ 07 октября 2019

У меня есть два заголовка, первый содержит APP_TOKEN, а второй содержит APP_TOKEN и USER_TOKEN, как мне выполнить условие, если мой запрос требует только APP_TOKEN или APP_TOKEN и USER_TOKEN для axios

это мои оси

import axios from 'axios'

export default axios.create((param_app){
  if(param_app == APP_TOKEN){
    baseURL: 'http://exampe',
    headers: {
      'timeout' : 30000,
      'APP_TOKEN': 'apptoken_example',
    }
  }else if(param_app === APP_TOKEN && USER_TOKEN){
    baseURL: 'http://exampe',
    headers: {
      'timeout' : 30000,
      'APP_TOKEN': 'apptoken_example',
      'USER_TOKEN': JSON.parse(localStorage.getItem('data')).TOKEN
    }
  }
})

например, эта страница входа требует только APP_TOKEN для заголовков

async handleSubmit(e){
    e.preventDefault()
    if(this.state.MEMBER_EMAIL && this.state.MEMBER_PASSWORD){
      const headers = {
        'timeout' : 30000,
        'APP_TOKEN': 'example',
      }
      await API.post('member/login', this.state ,{headers})
      .then((response) => {
        let responseJson = response
        if(responseJson.data.STATUS_CODE === '200'){
          this.props.resSave('data', JSON.stringify(responseJson.data.DATA))
          this.setState({
            redirect: true
          })
        }else if(responseJson.data.STATUS_CODE === '400') {
          alert(responseJson.data.MESSAGE)
          this.setState({
            redirect: false
          })
        }
      })
    }
  }

, и это пример страницы, которая требует APP_TOKEN и USER_TOKEN

async componentDidMount() {
    const headers = {
      'timeout' : 30000,
      'APP_TOKEN': 'example',
      'USER_TOKEN': JSON.parse(localStorage.getItem('data')).TOKEN
    }
    await API.get("/banner-home", {headers})
    .then(response=>this.setState({
      banner:response.data.DATA,
      loading:false
    }))
  }

1 Ответ

0 голосов
/ 08 октября 2019

Вам нужно переключаться между условиями в первом блоке кода. Сначала вы хотите проверить, есть ли оба значения, и, если это не так, проверьте, присутствует ли там только APP_TOKEN. В настоящее время, если токен APP_TOKEN присутствует, if никогда не достигнет второго теста.

...