0

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

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

并通过 Ajax 调用

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

但是在接收端,我正在检索值,因为"PN "它只是忽略了一个字符后的'&'字符串。如何克服这个?

4

3 回答 3

3

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

state = encodeURIComponent(sState)

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

data = { state: sState, ... }

或者

data = $('#some-form').serialize()
于 2012-09-21T09:14:34.413 回答
2

因为&是 GET 请求中对的分隔符key=value,所以您需要使用encodeURIComponent;对其进行转义。

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

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

为了安全起见,您可以随意逃避其余的价值观……我只是太懒了。

于 2012-09-21T09:14:06.807 回答
1

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

请参阅此处了解更多详细信息

于 2012-09-21T09:16:49.053 回答