当资源 uri 有多个子路径时,我在查询 RESTful 资源时遇到问题:
例子 :
.factory('SomeFactory', function ($resource) {
return $resource('/path/subPath/otherSubPath/:id', {}, {
show: { method: 'GET', params: { id: '@id' } }
})
}) ;
当我在控制器中调用 SomeFactory.show 时,我收到服务器响应状态为 400(错误请求)的错误,这是因为浏览器正在寻找 uri:
http://server/path/subPath%2FotherSubPat/id
注意 %2F 替换了 uri 中的 /(斜杠),我在 javascript 中尝试了很多技巧来完成这项工作;但唯一的解决方案是添加以下最后一行 replace(/%2F/gi, '/'); 在 angular-resource.js encodeUriSegment 方法中。
请告诉我这种方法是否正确。
function encodeUriSegment(val) {
return encodeUriQuery(val, true).
replace(/%26/gi, '&').
replace(/%3D/gi, '=').
replace(/%2B/gi, '+').
replace(/%2F/gi, '/');
}
谢谢 。