我有一个简单的AJAX请求,每次调用都需要一个csrf令牌,我这样定义:
app.factory('auth', ['$resource', '$cookies', function($resource, $cookies){
var getCsrf = function() {
//get csrf token from cookie
};
return {
login: $resource('auth/login', {}, {
'q' : {
method: 'POST',
params: {csrf_token: getCsrf()}
}
}),
// ... some more requests
};
}]);
据我所知,你可以指定默认的url
参数作为$resource()
- 调用的第二个参数,在我的例子中是空对象{}
。显然,我在params: ...
下的配置对象中设置的数据也可以通过GET发送,而不是使用指定的POST方法发送。
一种方法是手动将csrf_token放在我调用api-function的地方,但是我想保持它干净。有没有办法告诉angular用什么方法用于默认参数?所以我可以简单地使用..
auth.login.q(email, password, ...).then( ... );
..无需在我的所有调用中实现csrf-getter函数。此外,我对AngularJS相对较新,所以一个简单的答案就会很棒!
答案 0 :(得分:0)
有一种简单的角度方法: 在配置模块中设置xsrf cookie名称和头名称默认值。
DESC TABLE users;