2008-09-10 6 views
0

このコードはPrototype.jsです。おそらく20種類のチュートリアルを見てきましたが、なぜこれが機能していないのか分かりません。私が得る応答はnullです。Prototype.jsでXMLファイルをAjaxでXML(文字列ではない)として取得するにはどうすればよいですか?

new Ajax.Request(/path/to/xml/file.xml, { 
    method: "get", 
    contentType: "application/xml", 
    onSuccess: function(transport) { 
     alert(transport.responseXML); 
    } 
}); 

私はresponseTextresponseXMLを変更すると、それは文字列として私にXMLファイルを警告します。これはXMLを扱うPHPページではなく、実際のXMLファイルなので、レスポンスヘッダーではありません。

答えて

3

transport.responseXMLがnullでもtransport.responseTextの値がある場合は、有効なXMLファイルではないと考えられます。

編集: XMLファイルを要求するたびに私たちのコードでコンテンツタイプを 'text/xml'に設定していることに気がつきました。違いがあるかどうかは分かりません。

1

responseXMLレスポンスのNULL結果で問題を処理している私の午後を共有したいだけです。私の結果は、responseTextがXMLファイルで満たされている、responseXMLがNULLだったという質問に正確に記載されているとおりです。私のファイルが有効なXML形式であることを完全に確信していたので、エラーはどこか違うはずです。 プロトタイプV1.7ドキュメントで述べたように

、私は「アプリケーション/ xmlの」にコンテンツタイプを設定します。送信されるレスポンスは常に「text/html」でした。

私が問題になったのは、XMLファイルの終端が".gpx"だったからです。これはGPS座標のデファクトスタンダードです。私のローカルXAMPP Apacheインストールのmime-typesコレクションは、末尾 "xml"と "xsl"しか予期していません。 "gpx"を追加してサーバーを再起動した後、プログラムは正常に動作しました。

1)のApacheの "のmime.types" ファイルを編集します。私の場合は

は、3つのソリューションがあります。 XAMPPのインストールを使用すると、 "C:\ xampp \ apache \ conf \ mime.types"にあります。 「application/xml」レコードを検索し、次のように変更してください。

application/xml xml xsl gpx 

サーバーを再起動するのを忘れないでください!

2)該当するフォルダの.htaccessにMIMEタイプを追加します。 「XML」に代わりのものは何でもあなたの1に

希望私は安全ないくつかの時間を持って、アップロード処理中に

AddType application/xml xml xsl gpx 

3)、変更ファイルの種類:オープンまたは.htaccessファイルを作成し、次の行を追加します。みんな

関連する問題