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 に答える