Я использую угловой 1.4.8, и есть ошибка с вещью с параметром encode в запросе get.угловое пространство пробела как + не% 20
Это моя служба:
angular
.module('test')
.factory('User',User);
/* @ngInject */
function User($resource) {
return $resource('api/users/:login', {}, {
'query': {method: 'GET', isArray: false},
'get': {
method: 'GET',
transformResponse: function (data) {
data = angular.fromJson(data);
return data;
}
},
'save': {method: 'POST'},
'update': {method: 'PUT'},
'delete': {method: 'DELETE'}
});
}
и это, когда я использую его:
return User.get({
page: 1,
size: 20,
sort: 'email asc' //THIS IS A PROBLEM
}
).$promise.then(function (data, headersGetter) {
return data.content;
});
Мой запрос:
http://localhost:3000/api/users?page=0&size=10&sort=email+asc
Но его должны выглядеть следующим образом:
http://localhost:3000/api/users?page=0&size=10&sort=email%20asc
Почему угловой неправильно кодировать этот параметр? Как исправить эту проблему?
параметры GET не предназначены для работы с пробелами. Я бы использовал два поля: sortField и sortType – Serginho
Попробуйте добавить 'transformRequest: []' в определение 'get'. Это должно гарантировать, что с запросом не произойдет нежелательных преобразований. – jim0thy
Вы не можете просто расшифровать параметр на сервере? – charlietfl