2017-01-26 3 views
7

С вю-ресурса, мы могли бы установить корневой URL в main.js так:Переход от вю-ресурса AXIOS

Vue.http.options.root = 'http://localhost:3000/api' 

Я попытался заменить, что с:

axios.defaults.baseURL = 'http://localhost:3000/api'; 
Vue.prototype.$http = axios 

Однако, теперь мой почтовые вызовы не работают должным образом, и Vue.http.post выдает сообщение об ошибке.

Как это достигается?

+0

Не использовать абсолютный путь URL-адрес в метод экземпляра, вы должны использовать относительный URL – Erguotou

ответ

5

С Аксиос, можно создать еще один экземпляр having a custom config

var my_axios = axios.create({ 
    baseURL: 'http://localhost:3000/api', 
}); 

Отсюда можно использовать my_axios для операций. Вы можете прототип обычай AXIOS например в Vue:

Vue.prototype.$http = my_axios 
+0

нет это не работает, как ожидалось, либо – softcode

+3

да, может быть, вы скажете нам, что не работает с этим подходом? возможно, проверьте сетевую консоль и т. д. – keksnicoh

1
import axios from 'axios'; 

export const HTTP = axios.create({ 
    baseURL: `http://localhost:3000/api/`, 
    headers: { 
    Authorization: 'Bearer {token}' 
    } 
}) 

Теперь вы можете использовать HTTP как и

<script> 
import {HTTP} from './http-common'; 

export default { 
    data:() => ({ 
    posts: [], 
    errors: [] 
    }), 

    created() { 
    HTTP.get(`posts`) 
    .then(response => { 
     this.posts = response.data 
    }) 
    .catch(e => { 
     this.errors.push(e) 
    }) 
    } 
} 
</script> 
+0

Если вы хотите получить доступ к этому. $ http, например, в vue-resource, вы можете просто установить Vue.prototype. $ http = axios. –

Смежные вопросы