背景:
今日のタスクを行うとき、jQueryのajaxを使用して長い文字列を渡すとき、背景の検証は失敗しました。朝をチェックした後、私が生成した文字列に+数があることがわかりました。JSが通過したとき、私はそれをバックグラウンドでフロントデスクとは異なります。
理由:
JSの後、+番号などの特殊文字を自動的に分析し、スペースとしての解析、および変数コネクタであり、サーバー上のデータはデータを受信した後にデータを表示しません。
解決:
1.文字をフォームに置き、JSを使用してフォームフォームをサーバーに送信します。
2。キャラクターの特殊文字を16進体に置き換えます。
| + | 空間 | / / | それ以上は何ですか? | % | & | = | ## |
| %2b | %20 | %2f | %3F | %25 | %26 | &3d | %23 |
str = str.replace(//+/g、 "%2b");
3.最も簡単なのは、ecodeuricomponent()関数を使用することです。
この方法では、ASCIIの文字や数字をエンコードしません。また、これらのASCII句読点シンボルをコーディングしません。
他の文字(:;/?:@&=+$、#uriコンポーネントを分離するための句読点記号)は、1つ以上の16節の遷移シーケンスに置き換えられます。