我正在尝试将部分网址(例如/ one / two / 3)作为参数传递给ngResource:
angular.module('restapi', ['ngResource'])
.factory('RESTApi.Generic', function($resource){
return $resource('/some_action:url', { url: '@url' });
});
由于我的服务器而无法理解转换的网址,因此给出了404:
http://localhost/some_action%2Fone%2Ftwo%2Fthree
有没有办法绕过这种行为并仍然使用ngResource(而不是$ http)?
答案 0 :(得分:0)
不,没有办法。默认情况下,每个参数都使用以下javascript函数进行编码:encodeURIComponent
。
为什么你不使用像/some_action/:firstParam/:secondParam/:thirdParam
这样的路径?
答案 1 :(得分:0)
有一个快速解决方法:
// In angular-resource.js and method encodeUriSegment
function encodeUriSegment(val) {
return encodeUriQuery(val, true).
replace(/%26/gi, '&').
replace(/%3D/gi, '=').
replace(/%2B/gi, '+').
replace(/%2F/gi, '/'); // <--- Add this line
}