我有一个文本框,其值类似于“PN& J”。我将其存储在
中var sState = $('#txtState').val();
通过
进行Ajax调用 data: 'Service=' + sSvendor + '&City=' + sCity + '&Sub=' + sCitySub + '&State=' + sState + '&Network=' + sNetwork,
但是在接收端我只检索Value "PN "
它忽略'&'
个字符后的字符串。怎么克服这个?
答案 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