我正在开发一个带有 Angular 前端和 Java 后端的小型私人项目,最近我发现了一些奇怪的 IE11 行为(我知道 IE11 很糟糕,不应该与 Angular 项目一起使用)。有一次,我使用 Map Payload 向我的后端服务器发送了一个 POST。我知道 TS Maps 的 IE11 支持只是部分的。我从后端接收地图没有问题,但是当我发送地图时,我得到一个反序列化错误:
ERROR Can not deserialize Map key of type [...] from String "_t": not a valid representation[...]
后端期望 Map 的键是 Enum 的名称。我知道该错误告诉我他无法映射_t
到 Enum 的值,这并不奇怪,因为 Enum 不包含该值。
奇怪的是,我没有_t
在地图中放置键/值对。Firefox/Chrome 不会出现此问题。做了一些调试,发现 IE11 似乎在 Map 中添加了一些键/值对。
mapName: {
[functions]: ,
__proto__: { },
_f: undefined,
_i: { },
_l: undefined,
_s: 0,
_t: "Map",
size: 0,
CAT: 4
},
我添加到地图的唯一内容是CAT: 4
.
令人惊讶的是,我没有找到有关此问题的参考资料。有解决这个问题的方法吗?除了将这些值添加到后端枚举并忽略它们?