我正在尝试使用vue-resource(https://github.com/vuejs/vue-resource)从Asana api中提取一些项目,这是一个使ajax调用变得简单的Vue.js附加组件.我正在使用api密钥访问Asana,但我无法弄清楚如何使用vue-resource在请求头中传递密钥.
在jQuery中,这可以使用beforeSend:
$.ajax ({
type: "GET",
url: "https://app.asana.com/api/1.0/projects?opt_fields=name,notes",
dataType: 'json',
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "Basic " + "XXXXXX");
},
success: function (data){
// console.log(data);
}
});
Run Code Online (Sandbox Code Playgroud)
其中XXXXXX是Asana api键+':'用btoa()转换.https://asana.com/developers/documentation/getting-started/authentication
无需进行身份验证,Vue实例应该可以在ready函数中使用简单的请求:
new Vue({
el: '#asana_projects',
data: {
projects : []
},
ready: function() {
this.$http.get('https://app.asana.com/api/1.0/projects?opt_fields=name,notes', function (projects) {
this.$set('projects', projects); // $set sets a property even if it's not declared
});
},
methods: {
// functions here
}
});
Run Code Online (Sandbox Code Playgroud)
当然,这会返回401(未授权),因为那里没有api密钥.
在vue-resource github页面上,还有一个请求的beforeSend选项,但即使它在那里被描述,我似乎无法找出它的正确语法.
我试过了
this.$http.get( ... ).beforeSend( ... ); …Run Code Online (Sandbox Code Playgroud)