为什么我不能让encodeURIComponent()在Firefox中工作?

时间:2019-01-23 20:03:28

标签: javascript firefox

它可在其他浏览器中使用,将&字符转换为%26,这是预期的输出。

var CustomerID = "1234A&B";
let qString = "CustomerID=" + encodeURIComponent(CustomerID);

在IE11,Edge和Chrome中的输出是CustomerID=1234A%26B,这是我所期望的,但是在Firefox中,好像该方法没有使用:CustomerID=1234A&B。这对我来说是个问题,因为现在服务器正在获取具有值B的参数null,因为它会将与号转换为查询字符串定界符并将B解释为第二个参数。

我的实现不正确吗?我正在使用Firefox 64.0.2(2019年1月9日)。

1 个答案:

答案 0 :(得分:0)

我是笨蛋。在我使用属性路由并将值作为路由参数传递之前(这是后端上的MVC)。然后我将其更改为使用查询字符串,因为参数具有特殊字符,并且属性路由需要更深的潜在风险修改才能允许特殊字符作为参数。

无论如何,查询字符串中的参数名称标签错误。当我只在属性路由中使用参数值时,这不是问题,但是对于查询字符串,您需要确切指定参数名称。