'%'や'&'などの文字を含む大きな文字列をajax postを介してphpページに渡すにはどうすればよいですか?
言い換えれば、それらをjavascript-encodeし、php-decodeする方法は?
'%'や'&'などの文字を含む大きな文字列をajax postを介してphpページに渡すにはどうすればよいですか?
言い換えれば、それらをjavascript-encodeし、php-decodeする方法は?
JavaScript関数を使用してencodeURIComponent()
、キーまたは値のいずれかでこれらの文字をエスケープできます。
PHPはそれを受け取り、自動的に$_POST
配列にデコードします。
データの形式は、クエリ文字列形式である必要があります。具体的には、次のとおりです。
Content-Type: application/x-www-form-urlencoded
例えば:
Name=Joe&Age=23&City=Altoona
encodeURIComponent()
各キーと各値を使用し、それらをで結合し=
、でグループ化すると&
、それ以上の問題は発生しません。
それらをJavaScriptでエンコードするには、encodeUriとencodeUriComponentを使用します
http://www.w3schools.com/jsref/jsref_encodeURIComponent.asp
PHPデコード:
XMLHttpRequestのsendメソッドでPOSTパラメーターを使用する場合、実際には何かをエンコードまたはデコードする必要はありません。URIフィールドを使用するため、GETのみがそのようなエンコーディングを必要とします。SQLリクエストでこのデータを使用する場合は注意が必要です。注射に注意してください。