У меня есть простой запрос AJAX, который нуждается в маркер CSRF для каждого вызова и я определить его следующим образом:Как я могу установить по умолчанию параметров в ngResource быть POST
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()
-call, в моем случае пустой объект {}
. По-видимому, данные, установленные в объекте конфигурации под params: ...
, также отправляются через GET, а не с указанным POST-методом.
Одним из способов было бы вручную поставить csrf_token в том месте, где я делаю вызов функции api, но я хочу сохранить его в чистоте. Есть ли способ рассказать, какой метод использовать для параметров по умолчанию? Так что я мог бы просто использовать ..
auth.login.q(email, password, ...).then(...);
.. без реализации функции CSRF-геттер во все мои звонки. Также я относительно новичок в AngularJS, поэтому простой ответ будет замечательным!
Вы можете просто создать оболочку ресурса. – Rob