角度传递资源参数中的特殊字符解码失败

时间:2017-12-26 12:54:56

标签: javascript angularjs

我一直在搜索我的URL子字符串参数的解码,其中包含正斜杠,而%2F代替/

var Report = $resource('api/v1/report/:action/:key', {key:'@key'}, {
getById: {
                method: 'GET',
                params: {
                    action: 'abc/source'
                }
            },
});

我正在运行一些单元测试时遇到异常但是它正在使用浏览器测试。

错误:意外请求:GET api / v1 / report / abc%2Fsource / raj

如何将此视为/

我也尝试过使用javaScripts decodeURIComponent,但它似乎不起作用。任何想法

由于

1 个答案:

答案 0 :(得分:0)

$resource正确地将/转换为%2F,因为它是网址的一部分。似乎您需要更改$resource的网址,可以覆盖它。

在资源声明方法中,declarion会覆盖URL。

  

url - {string} - 特定于操作的网址覆盖。支持网址模板,就像资源级网址一样。

代码

var Report = $resource('api/v1/report/:action/:key', {
        key: '@key'
    }, {
        getById: {
            url: 'api/v1/report/:action1/:action2/:key',  //Override URL for getById
            method: 'GET',
            params: {
                action1: 'abc',
                action2: 'source'
            }
        },
    });