jquery用'&'获得价值字符

时间:2012-09-21 09:10:13

标签: jquery

我有一个文本框,其值类似于“PN& J”。我将其存储在

var sState = $('#txtState').val();

通过

进行Ajax调用
  data: 'Service=' + sSvendor + '&City=' + sCity + '&Sub=' + sCitySub + '&State=' + sState + '&Network=' + sNetwork,

但是在接收端我只检索Value "PN "它忽略'&'个字符后的字符串。怎么克服这个?

3 个答案:

答案 0 :(得分:3)

如果您自己连接字符串,则需要确保正确地转义值:

state = encodeURIComponent(sState)

但是,如果序列化表单或将数据设置为JSON对象,则会为您处理。

data = { state: sState, ... }

data = $('#some-form').serialize()

答案 1 :(得分:2)

由于&是GET请求中key=value对的分隔符,因此您需要使用encodeURIComponent转义它;

data: 'Service=' + sSvendor + '&City=' + sCity + '&Sub=' + sCitySub + '&State=' + encodeURIComponent(sState) + '&Network=' + sNetwork,

值得注意的是,还有encodeURI,但它不会像&那样编码值(因为它将输入视为整个URI,而不是特定的组件)。

为了安全起见,请自己逃避其余的价值观......我太懒了。

答案 2 :(得分:1)

您可以使用encodeURIComponent()对字符进行编码。

有关详细信息,请参阅here