我使用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来自哪里,我该如何防止这种情况?