我正在使用angular 1.4.8,並且在獲取請求時存在編碼參數中的錯誤。角編碼空間爲+不是%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