1. ホーム
  2. javascript

[解決済み] JavaScriptのMIMEタイプでtext/javascriptの代わりにapplication/javascriptを使用するのはどのような場合ですか?

2022-04-26 05:54:33

質問

質問に基づく IEでjQueryのコードが動作しない , text/javascript は、Internet Explorerが理解できるように、HTML文書で使用されています。

でも、気になるのは、どんなときに application/javascript の代わりに、なぜこれを使うのでしょうか? text/javascript ?

解決方法は?

によると、理論的には RFC 4329 , application/javascript .

とされているのは application は、その型が読み取り可能か実行可能かとは関係ありません。それは、言語や型そのものが、単に一般的な charset パラメータを使用します。のサブタイプは text は、プロキシがcharsetパラメータを変更することで、別の文字セットにトランスコードできるようにする必要があります。これはJavaScriptには当てはまらないからです。

a. RFCは、ユーザーエージェントがスクリプトのBOM-sniffingを行って型を決定すべきであると言っています(しかし、実際にこれを行うブラウザがあるかどうかはわかりません)。

b. ブラウザは他の情報、つまりページのエンコーディングや、(1) (2) (3) (4) (5) (6)を含む情報を利用します。 一部 ブラウザは script charset 属性を使って文字セットを決定します。ですから、リソースをトランスコードしようとするプロキシは、そのユーザーを壊してしまうことになります。(もちろん、現実には誰もトランスコードするプロキシを使うことはありませんが、これは意図したものです)。

したがって、ファイルの正確なバイト数は保持されなければなりません。 まさに であるため、バイナリ application 型であり、技術的には文字ベースではなく text .

同じ理由で application/xml よりも公式に優先されます。 text/xml : XML には独自の帯域内文字セット信号の仕組みがあります。そして、誰もが application もXMLの場合です。

text/javascripttext/xml は公式な正しいことではありませんが、互換性のために今日みんなが使っているものであり、正しいことでない理由は実質的に全く重要ではありません。