Как изменить этот объект ax ios, чтобы я мог выбирать между различными заголовками? - PullRequest
1 голос
/ 23 марта 2020

У меня в настоящее время есть следующий топор ios объект

    import axios from 'axios';
import constants from '../constants.js';
import Cookies from 'js-cookie';

const API = axios.create({
  baseURL: `${constants.urlBackend}`,
  timeout: 10000,
  headers: {
    'Content-Type': 'application/json'
  },
});

API.interceptors.request.use(
  config => {
    var accesstoken = Cookies.get('accesstoken');

    if (accesstoken) {
      config.headers.Authorization = `Bearer ${accesstoken}`;
    } else {
      delete API.defaults.headers.common.Authorization;
    }
    return config;
  },

  error => Promise.reject(error)
);

export default API;

Который я использую, например, как показано ниже

API.get(constants.urlBackend + "/status/ftp/Server3")
        .then((response) => {
            if (response.status === 200) {
                this.setState({ sonServerThreeStatus: true });
            } else {
                this.setState({ sonServerThreeStatus: false });
            }
        })
        .catch((error) => {
            this.setState({ sonServerThreeStatus: false })
        });

Дело в том, что все те запросы, которые я использовал до сих пор используя этот объект, имейте заголовки содержимого application / json, но я сталкиваюсь с проблемой, и есть некоторые, которые требуют

headers: {
                 'content-type': 'application/x-www-form-urlencoded;charset=utf-8'
             }

Так что я не знаю, как переключаться между различными заголовками, или как сделать так, чтобы этот объект выбирал между несколькими вариантами и как мне его вызывать.

1 Ответ

0 голосов
/ 23 марта 2020

Решено, я удалил заголовки из объекта, и теперь я просто указываю их при запуске объекта

 API.post(constants.urlBackend + "/register", qs.stringify({ email, password }), {
            'content-type': 'application/x-www-form-urlencoded;charset=utf-8'
        }).
...