回答:
それらはパーセントエンコードする必要があります:
> encodeURIComponent('&')
"%26"
したがって、あなたの場合、URLは次のようになります。
http://www.mysite.com?candy_name=M%26M
A potentially dangerous Request.Path value was detected from the client (&).
これは、URLのアンパサンドだけでなく、すべての予約文字にも適用されます。その一部は次のとおりです。
# $ & + , / : ; = ? @ [ ]
アイデアは&
HTMLドキュメントでののエンコードと同じですが、コンテキストはHTMLドキュメント内にあることに加えて、URI内にあるように変更されました。したがって、パーセントエンコーディングは、両方のコンテキスト内の解析に関する問題を防ぎます。
これが非常に便利なのは、URLを別のURLの内部に配置する必要がある場合です。たとえば、Twitterにステータスを投稿する場合:
http://www.twitter.com/intent/tweet?status=What%27s%20up%2C%20StackOverflow%3F(http%3A%2F%2Fwww.stackoverflow.com)
つぶやきには予約文字がたくさんあるため?'():/
、status
URLパラメータの値全体をエンコードしました。これmailto:
は、メッセージの本文または件名を持つリンクを使用する場合にも役立ちます。これは、改行やアンパサンドなどをそのままに保つためにbody
およびsubject
パラメータをエンコードする必要があるためです。
予約セットの文字(「予約文字」)が特定のコンテキストで特別な意味(「予約目的」)を持ち、URIスキームがその文字を他の目的に使用する必要があると述べている場合、文字パーセントエンコードする必要があります。予約文字のパーセントエンコードでは、文字をASCIIの対応するバイト値に変換し、その値を16進数のペアとして表します。エスケープ文字として使用されるパーセント記号( "%")が前に付いた数字は、予約文字の代わりにURIで使用されます。(非ASCII文字の場合、通常はUTF-8でバイトシーケンスに変換され、各バイト値は上記のように表されます。)たとえば、「パス」で使用されている場合、予約文字「/」URIのコンポーネント。パスセグメント間の区切り文字となるという特別な意味があります。特定のURIスキームに従って、「/」をパスセグメントに含める必要がある場合、セグメントでは、「/」ではなく「%2F」または「%2f」の3文字を使用する必要があります。
http://en.wikipedia.org/wiki/Percent-encoding#Percent-encoding_reserved_characters
! ' ( ) *
を使用してエンコードされたURL ではありませんencodeURIComponent
。
を使用してみてくださいhttp://www.example.org?candy_name=M%26M
。
参照してください、この参照して、いくつかのより多くの情報Wikipediaのを。
%文字を使用して、URLで許可されていない文字を「エスケープ」できます。[RFC 1738]を参照してください。
http://www.asciitable.com/のASCII値の表。
&
16進数で26であることがわかるので、M%26Mが必要です。
ライブラリを使用して値をエンコードできない場合は、 http://www.urlencoder.org/またはhttp://www.urlencode-urldecode.com/または...
完全なURLではなく、値「M&M」を入力するだけです;-)
ブレンダーソリューションに関するマイナーなコメントを追加したいと思います。
次のことができます。
var link = 'http://example.com?candy_name=' + encodeURIComponent('M&M');
それは出力します:
http://example.com?candy_name=M%26M
この素晴らしい点は、&だけでなく、特別なキャラクターにも機能します。
例えば:
var link = 'http://example.com?candy_name=' + encodeURIComponent('M&M?><')
出力:
"http://example.com?candy_name=M%26M%3F%3E%3C"
このencodeURIComponent関数を使用して引数を渡すことができるので、特殊文字を渡すことを心配する必要はありません。
data: "param1=getAccNos¶m2="+encodeURIComponent('Dolce & Gabbana') OR
var someValue = 'Dolce & Gabbana';
data : "param1=getAccNos¶m2="+encodeURIComponent(someValue)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent