2017-04-14 43 views
0

我在Vue中为AJAX使用axios。在你写的article中,他提到我们可以设置Vue.prototype.$http = axios,我可以在Vue实例中使用this.$http。它工作正常。在Vue中创建axios的实例不起作用

但是,如果我想创建一个爱可信实例$http,像

Vue.prototype.$http = axios.create({ 
    baseURL: 'https://app.herokuapp.com/' 
}) 

当我使用this.$http.get('/relativeURL')它不工作。它似乎无法访问我设置的配置。也就是说,它不会发送请求到https://app.herokuapp.com/relativeURL

换句话说,如果我在任何其他对象,如Vue.prototype.$axios = axios.create({config})设置axios实例。它工作成功。

有人可以解释为什么会发生这种情况?

回答

0

您设置

Vue.prototype.$https = axios.create({ 
    baseURL: 'https://app.herokuapp.com/' 
}) 

和使用属性名

this.$http... 

错字(HTTPS VS HTTP)。

将其保留为$ http。或者根本不声明$ http,如果它误导你 - 只使用this.axios.get ...

+0

对不起,这是一个错字。 – PJCHENder

0

虽然在Vue实例级定义它可能有它自己的优点,但我不喜欢污染全局命名空间。什么我的做法是,我有一个gateway文件夹,其中我对爱可信例如不同的文件,如:

后端-api.js

import axios from 'axios' 
export default axios.create({ 
    baseURL: 'http://YourAPiIp:9090/api/v1', 
    timeout: 100000, 
    headers: { 
    'Content-Type': 'application/json' 
    } 
}) 

现在你可以导入你想要的地方并使用它:

import backendApi from '../../gateways/backend-api'