Axios区分本地和产品?

时间:2017-12-11 14:30:53

标签: ajax vue.js axios

我正在使用Vue + axios,我在设置它时遇到问题,因此基本网址会因网站的网址而有所不同?

所以我的localhost for vue当然是:

http://localhost:8080

localhost的

api是:

http://webuilder.app

服务器上的

是:

http://webuilder.co.uk

和api是:

http://api.webuilder.co.uk

所以我使用webpack来组合常见的库:

'vendor.js': ['vue', 'bootstrap', 'axios', 'popper.js', 'pace', 'vue-router', 'jquery'],

和我的全局配置:

import Popper from 'popper.js/dist/umd/popper.js';
import Pace from 'pace-js';
import Vue from 'vue';
import VueRouter from 'vue-router';
import Axios from 'axios';

Pace.start();

try {
  window.$ = window.jQuery = require('jquery');
  window.Popper = Popper;
  require('bootstrap');
} catch (e) {}

window.Vue = Vue;
window.VueRouter = VueRouter;

window.axios = Axios;

window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';

let token = document.head.querySelector('meta[name="csrf-token"]');

if (token) {
  window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
  console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}

所以,如果我想做axios post它工作正常,但每次我必须告诉它它将会是什么域,是否有某种设置,以便当我在localhost时,域是webuilder.app而如果它在prod域名是api.webuilder.co.uk?

1 个答案:

答案 0 :(得分:0)

考虑使用类似的东西

var axios = require('axios');

var axiosInstance = axios.create({
  baseURL: process.env.baseUrl || 'https://example.com/foo/bar'
});

module.exports = axiosInstance;

在条件语句中使用它,您可以将环境设置为prod或develop