3

我正在查看以下描述如何设置配置的 vue-resource 文档: https ://github.com/vuejs/vue-resource/blob/master/docs/config.md

它说用一个通用的授权值设置你的标题:

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

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

在同一页面上,我还看到了“root”的设置:

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

我理解这意味着网络应用程序的网络 URL。但是,为什么 vue-resource 需要我告诉它这个值呢?它有什么用?

4

2 回答 2

5

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

您还可以为每个请求添加标头:

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

关于Authorization示例中标头的值:它是带有用户名/密码的 base64 编码字符串。

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'
});
于 2016-03-30T18:39:55.547 回答
2

如果您想以全局方式设置标头身份验证,请使用 inceptor

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

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

并使用选项凭据:

Vue.http.options.credentials = true;
于 2017-07-06T07:36:30.330 回答