2017-04-14 112 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'