У меня есть angularJS приложения с API службы определяется следующим образом:
(function()
{
'use strict';
angular
.module('myApp')
.factory('api', apiService);
/** @ngInject */
function apiService($resource)
{
var api = {};
// Base Url
api.baseUrl = 'http://localhost:37243/';
api.Auth = $resource(api.baseUrl + 'auth/:verb', {}, {
login: {
method: "POST",
params: {
verb: 'credentials'
}
},
logout: {
method: "GET",
params: { verb: 'logout' }
},
getSession: {
method: "GET",
params: { verb: 'session' }
}
});
return api;
}
})();
, и я уверен, выполнение метода входа от службы Auth, как это:
authService.login = function (user, success, error) {
var apiAuth = new api.Auth();
apiAuth.$login(user).then(
function (response) {
var loginData = response;
authService.getSession();
$rootScope.$broadcast(AUTH_EVENTS.loginSuccess);
success(loginData);
}, function (response) {
$rootScope.$broadcast(AUTH_EVENTS.loginFailed);
error(response);
});
};
Выполняется вызов api, но он передает полезную нагрузку в строке запроса, а не в полезную нагрузку данных. Я думаю, что у меня есть ресурс, настроенный неправильно, но не могу понять почему.
Что посылается:
http://localhost:37243/auth/credentials?password=Password1&username=admin
То, что я хочу быть отправлено:
POST http://localhost:37243/auth/credentials {пароль: 'Password1', имя пользователя: 'админ' }
Любые идеи?
попробуйте заменить глагол параметров от входа ресурса – Erez
@Erez Я не уверен на 100%, что вы имеете в виду, но я попытался переопределить URL-адрес, чтобы не иметь параметра: verb и удалил объект param из метода override без какой-либо радости ...? – Drammy
Логин: { метод: "POST", Титулы: { КЛРД: 'Полномочия' } }, – Erez