2016-03-30 93 views
2

我在看的VUE资源下列文档描述了如何设置配置:https://github.com/vuejs/vue-resource/blob/master/docs/config.md的配置VUE资源根和授权

它说,与共同授权值设为您的标题:

Vue.http.headers.common['Authorization'] = 'Basic YXBpOnBhc3N3b3Jk'; 

我猜这个“基本的YXBpOnBhc3N3b3Jk”值只是一个例子,但是这个值是什么,应该用什么来代替它呢?

在同一页上,我也看到了“根”的设置:

Vue.http.options.root = '/root'; 

我明白这意味着Web应用程序网站的URL。但是,为什么vue-resource需要我告诉它这个值?它用于什么?

回答

5

通过向Vue.http.headers.common对象添加标题,您可以告诉vue-resource在每个请求中添加这些标题。

也可以报头添加到每个请求:

http({ 
url: '/someUrl', 
method: 'GET', 
headers: { 
    Authorization: 'Basic YXBpOnBhc3N3b3Jk' 
} 
}) 

关于用于本例中的Authorization报头中的值:这是一个64位编码串与用户名/密码。

window.atob('YXBpOnBhc3N3b3Jk') // => "api:password" 

如果您在使用vue-resource时需要使用基本身份验证,则应提供您自己的用户名/密码。

请注意,每个使用您应用程序的人都可以查看用户名/密码。 有关基本身份验证的更多信息,请参阅https://en.wikipedia.org/wiki/Basic_access_authentication

根属性可能是您的REST服务的主要端点。 相反的:

http({ 
url: 'http://api.domain.com/v1/someRoute' 
}); 

您可以设置与根端点:

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

// will call http://api.domain.com/v1/someRoute 
http({ 
url: '/someRoute' 
}); 
+0

Thank you for the great response :) – user3089840

+1

重要的是要注意,如果你对''/ someRoute''执行一个'http'请求,它将*覆盖'root'设置。您必须请求“someRoute”才能使用您设置的根目录。 – Jeff

+0

谢谢@Jeff正是我之后的事情。 – nickspiel

0

如果你想在全球路组头AUTH使用拦截器

Vue.http.interceptors.push(function(request, next) { 

    request.headers['Authorization'] = 'Basic abcd' //Base64 
    request.headers['Accept'] = 'application/json' 
    next() 
}); 

,并使用选项凭据:

Vue.http.options.credentials = true;