私は少し混乱しています。 XHTML +のいくつかの特別な属性(<!ATTLIST>
で設定)を使用しているため、自分のサーバー上でcontent-typeをapplication/xhtml + xmlに切り替えました。私がこれをして以来、すべての地獄は緩んだ。
たとえば、私のサーバーからデータを読み込むオートコンプリートボックスがあります。 AJAXリクエストが行われたときのサーバーからの応答はapplication/jsonのcontent-typeのものです。後者にアンパサンドが含まれている場合、私のブラウザはAn invalid or illegal string was specified" code: "12
を叫びます。私のページのcontent-typeをtext/htmlに復元すると、エラーはまったくありません。アンパサンドはXHTMLではHTMLとは異なって表現されていますが、応答のコンテンツタイプはapplication/jsonだから、なぜjQueryはxhtmlとして解析するのですか?
私は私のコード全体で(他のすべてのjQuery/javascript関連の)他の同様のエラーがあります。jQuery XHTML準拠
これらのエラーを回避するには、何が必要ですか?
アンパサンドは、HTMLとXHTMLでは別々に表現されません。両方で '&'です。 – You
@あなた - それはまったく真実ではありません。アンパサンドは、テキスト・エンコーディング・スキームに応じて、そのままHTMLで送信できます。 XHTMLには特別な意味があるので、一般的にはCDATAブロックまたはエンティティエンコードされたものに囲まなければなりません。 –
アンパサンドはそのままでは送信できません。アンパサンドはデコード後にアンパサンドになるため、テキストエンコードは関連性がありません。 pcdataでは、CDATAを使用するか、&を使用して引用することができます(属性では、&しか使用できません)。 –