使用ngResource在ISOString上使用EncodeURIComponent

时间:2016-05-05 18:30:53

标签: angularjs escaping iso ngresource encodeuricomponent

我使用ngResource与RESTful api进行通信,后者接收一些日期参数。日期参数是格式化为ISO格式的字符串。

当我对这些参数使用encodeURIComponent时,我在我的Fiddler上看到冒号被错误地转义。而不是%3A,我看到%253A。

myMod.factory('DateQuery', ['$resource', function ($resource) {
    return function (date1) {
        return $resource(
            '../api/datedata?date1=:date1', {
                date1: date1
            },
            {
            });
    }
}]);

以下是我如何使用它:

        var theDate = Date.now().toISOString();
        var escapeDate = encodeURIComponent(theDate);
        var promise = DateQuery(escapeDate).query().$promise;
        promise.then(function (data) { // do stuff });

如果我查看调试中的代码,我会发现escapeDate与预期的2016-05-04T19%3A00%3A00.000Z相等。

然而,当我在Fiddler上观察到这一点时,我看到了:

GET /api/datedata?date1=2016-05-04T19%253A00%253A00.000Z

这个%25来自哪里,我该如何防止这种情况?

0 个答案:

没有答案