国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

URL コンストラクターがクエリ文字列のかっこをエンコードしないのはなぜですか?
P粉287254588
P粉287254588 2023-09-03 21:05:00
0
1
646
<p>JavaScript では、<code>URL</code> コンストラクターは、クエリ文字列に出現(xiàn)する角かっこや括弧をエンコードしませんが、<code>encodeURI</code> または <code>encodeURIComponent</ code> は常にそれらをエンコードします。ほとんどのソースでは、特殊文字がクエリ パラメーターに含まれる場(chǎng)合、<code>encodeURI</code>/<code>encodeURIComponent</code> を使用してエンコードすると記載されているため、これは私を混亂させます。 <code>URL</code> オブジェクトでも同様の動(dòng)作が期待されました。 </p> <p>URL オブジェクトのクエリ パラメーターがどのようにエンコードされるかわからないため、単體テストを作成する際に問(wèn)題が発生します。これを規(guī)定する仕様はありますか、それとも <code>URL</code> コンストラクターを使用する前にパラメーターを常にエンコードする必要がありますか?助けてくれてありがとう。 </p>
<p>クエリ文字列內(nèi)の括弧をエンコードしていない URL オブジェクトを示す例</p> <pre class="brush:js;toolbar:false;">const href = (新しい URL('https://foobar.com?myQuery={"@asdf/asdf":"1234"}' )).href; // ^ https://foobar.com/?myQuery={"@asdf/asdf":"1234"} </pre> <p><code>encodeURI</code> を使用する場(chǎng)合、唯一の違いは括弧がエンコードされることです</p> <pre class="brush:js;toolbar:false;">const href = encodeURI('https://foobar.com?myQuery={"@asdf/asdf":"1234"}'); // ^ https://foobar.com?myQuery={"@asdf/asdf":"1234"} </pre>
<p>注: クエリ パラメータに括弧が含まれていない場(chǎng)合、URL オブジェクトは括弧をエンコードします。 </p> <pre class="brush:js;toolbar:false;">const href = (new URL('https://foobar.com/}}}?myQuery={"@asdf/asdf":" 1234"}')).href; // ^ https://foobar.com/}}}?myQuery={"@asdf/asdf":"1234"} </pre></p>
P粉287254588
P粉287254588

全員に返信(1)
P粉785957729

可能なエンコーディングは複數(shù)ありますが、それらはすべて同じ URL として解釈されるはずなので、技術(shù)的に間違っているものはありません。別の例としては、パーセント エンコードでは大文字または小文字 (? または ?) を使用でき、ドメイン名は大文字と小文字が區(qū)別されず、スペースは としてエンコードできます。または (一部の部分)。

URL エンコードの特定の実裝を単體テストする場(chǎng)合は、文字列の照合を?qū)g行できますが、エンコード方法に関係なく 2 つの URL が同じかどうかを知りたい場(chǎng)合は、最初に「」という手順を?qū)g行する必要があります。正規(guī)化」操作を行ってから比較します。

最新のダウンロード
詳細(xì)>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート