サイトに事前接続リソースのヒントを含めて、CDNを呼び出すスクリプトタグが実際に表示される前にブラウザーが(たとえば)jQuery CDNに接続できるようにします。 「crossorigin」属性を含めるべきかどうか、またはその値がどうあるべきかがわかりません。 spec は、一部、
事前接続を開始するには、ユーザーエージェントは次の手順を実行する必要があります。
[…]
- corsAttributeStateを要素の
crossorigin
コンテンツ属性の現在の状態とします。- credentialsを
true
に設定されたブール値とする。- corsAttributeStateが
Anonymous
で、Originが等しくない場合現在のドキュメントのオリジン、資格情報をfalse
に設定します。- Originおよびcredentialsとの接続を取得しようとします。
このアルゴリズムの解釈方法がわかりません。 CDNに事前接続している場合、資格情報なしでコンテンツをだれでもダウンロードできますが、「crossorigin」属性にはどの値を使用すればよいですか?
私は同じものを探していて、 this を見つけました
ここでは、クロスオリジン属性を使用しない場合、ユーザーエージェントはDNSルックアップを行うだけで、特定のドメインとの接続を確立しないと述べています。したがって、次のようにクロスドメインに事前接続する必要がある場合、crossorigin属性が必要です。
<link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin>
また、特定のクロスドメインに資格情報を送信する場合は、crossorigin = use-credentials
としてcrossoriginに値を設定できます。それ以外の場合、デフォルト値は匿名だと思います。
これまでのところ、crossorigin
の使用法を理解しています。特にその値anonymous
およびuse-credentials
に関しては、crossorigin="use-credentials"
の場合を使用する必要があります。
あなたが引用したドキュメントに加えて、私は this と that を得ました。しかし実際、ドキュメントは誤解を招くものであり、つづりの間違いが含まれています。最初はuse-credentials
、2番目はuser-credentials
と呼びます。
とにかく、私の理解では:
crossorigin
がcrossorigin="anonymous"
と等しいcrossorigin
はcrossorigin="use-credentials"
と等しいたぶん誰かが私を修正するでしょう。
PS:件名に対する Mozillaページの現在のバージョン
無効なキーワードと空の文字列は、匿名キーワードとして処理されます。
意味:crossorigin
がまったくない、crossorigin
またはcrossorigin="use_credentials"
はすべてcrossorigin="anonymous"
として処理されます。
次の2つのことに依存します。
JQueryの場合、crossorigin
は使用しません。スクリプトは、 ブラウザがCORSを使用してダウンロードするリソースのタイプ には含まれていません。
一方、フォントはCORSを使用します。
crossorigin
属性を含めます。crossorigin
を省略します。もしここに Stack Overflow post があり、同じ問題が発生しました。
CORSクレデンシャルが必要なとき、私は飛び込みませんでした。それらが必要な例を見たことがないので、crossorigin
(つまり、 `crossorigin =" anonymous ")で安全である可能性があります。