代码之家  ›  专栏  ›  技术社区  ›  Iskandar Reza

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

  •  0
  • Iskandar Reza  · 技术社区  · 7 年前

    它在其他浏览器中工作,转换 & 性格融入 %26 这是预期的输出。

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

    IE11、Edge和Chrome中的输出是 CustomerID=1234A%26B 这是我所期望的,但在火狐中,这个方法并没有: CustomerID=1234A&B . 这对我来说是个问题,因为现在服务器正在获取参数 B 具有价值 null 因为它将符号和转换为查询字符串分隔符并解释 作为第二个参数。

    我的实现是否不正确?我正在使用火狐64.0.2(2019年1月9日)。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Iskandar Reza    7 年前

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

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