1 に答える
ブラウザが responseXML を使用して XML オブジェクトを正しく返すには、次のことを確認する必要があります。
1. XML ドキュメントが適切に形成されている (そうでない場合、responseXML は常にnullを返します)
2. Firefox では、Ajax リクエストの開始時に (インスタンス化時に) request.overrideMimeType('text/xml')を呼び出して、返されるデータのコンテンツ タイプが「text/xml」であることをブラウザーに明示的に伝えます。
3. IEはクライアント側の overrideMimeType() メソッドをサポートしていないため、返される XML ファイルに対してサーバーが適切な「text/xml」コンテンツ ヘッダー タイプを返すことを確認する必要があります。
注: XML ファイルの名前に「.xml」という拡張子が付いている場合、ほとんどのサーバーはデフォルトで適切な「text/xml」ヘッダーを送信しますが、そうでない場合は、サーバー設定を変更して送信する必要があります。 . 詳細については、「XML ドキュメントと IE の Content-type の落とし穴」を参照してください。
上記の条件のいずれかが満たされない場合、返されるデータは期待どおりの XML オブジェクトではなく、プレーン テキストとして返されます。
編集:私はあなたのJQuery Ajax呼び出しを(再び)調べて、何を推測しますか?! AJAX 要求が完了する前であっても、responseXML にアクセスしようとしているため、responseXMLは常に未定義になります。私の解決策は、 successの代わりにcomplete属性で関数を呼び出すことです。