Vue Resource root options not used?

Cyril N. picture Cyril N. · Jan 22, 2016 · Viewed 8.6k times · Source

I specify a root options in my Vue-Resource in my main.js file, but when I do the request, it does not use the root options. What am I missing ?

Here's the code :

main.js:

Vue.http.options.root = 'http://api.domain.com/v1/'

In a component :

ready: function () {
    console.log(this.$http.options.root) // Correctly show 'http://api.domain.com/v1/'

    this.$http.get('/members/', null, { // FAILS because it tries to load /members/ in the current domain
        headers: {'auth-token': 'abcde'}
    }).then(function (xhr) {
        // process ...
    })
}

What am I doing wrong ?

I'm using Vue.js v1.0.15 and Vue-Resource v0.6.1

Thank you for your help.

Answer

Cyril N. picture Cyril N. · Jan 22, 2016

Ohoh this is tricky !

In order for root to be taken into consideration, you need to remove the initial / from the url :

this.$http.get('/members/') becomes this.$http.get('members/')

Also, you need to remove the last / in the root :

Vue.http.options.root = 'http://api.domain.com/v1/'

becomes

Vue.http.options.root = 'http://api.domain.com/v1'

And with that, it will work!