要するに、ローカルで正常に動作するプロジェクトがありますが、一度サーバーにアップロードすると、私の1つのXMLHttpRequestは悲惨に失敗します。ロードされているXMLファイル(この場合は.tmx)への相対パスは間違いなく正しいです。この問題を解決するための援助は、大いに感謝します。XMLHttpRequestはローカルでは動作しますが、サーバー上にはありません
プロジェクトの場所はwww.jorum.se/fancypants/で、問題のコードはgame.js(22行目)です。
要するに、ローカルで正常に動作するプロジェクトがありますが、一度サーバーにアップロードすると、私の1つのXMLHttpRequestは悲惨に失敗します。ロードされているXMLファイル(この場合は.tmx)への相対パスは間違いなく正しいです。この問題を解決するための援助は、大いに感謝します。XMLHttpRequestはローカルでは動作しますが、サーバー上にはありません
プロジェクトの場所はwww.jorum.se/fancypants/で、問題のコードはgame.js(22行目)です。
サーバ上のXML文書はtext/xml
コンテンツタイプと配信されていないので、XMLHttpRequestオブジェクトは、responseXML
プロパティが設定されていないことを意味するXMLとしての応答を、治療されていません。 responseText
プロパティにXMLテキストが含まれていることに注意してください。
HTTPサーバーが正しいコンテンツタイプを返すように修正しました。
これは、私が見ているものからAJAXリクエストをうまく作成しています。私の推測航法によって、あなたの問題は、これらの線です:私はまた、あなたが努力を通過している理由として興味
game.js:22
Uncaught TypeError: Cannot read property 'documentElement' of null
:
var xmldoc = req.responseXML;
var mapwidth = xmldoc.documentElement.getAttribute("width");
XMLDOCは、このように、それは次のエラーを投げ、nullですとにかく既にjQueryをロードしているときには、自分のXMLHttpRequestオブジェクトを手動で作成する必要があります。なぜjQuery.ajaxを使用しないのですか? dataType
にxml
を含めるようにパラメータを設定すると、HTTPヘッダーを適切に設定していない場合でも解析することができます。
お気に入りのブラウザでJavaScriptエラーが発生しましたか? game.js
の22行目のエラーが表示されます。これは、あなたのresponseXMLがあなたが期待していたものではないため、xmldocがあなたが望むように初期化されていないためです。クラックを開いてデバッガ(FirefoxのChromeインスペクタまたはFirebug)を開き、何が失敗しているかを確認します。それが私だったら、game.jsの21行目にブレークポイントを設定し、reqオブジェクトを見て最後のトランザクション(エラー、その他のデータなど)について教えてください。
responseXML here on Mozilla's referenceの説明を参照してください。考えられる理由は、responseXML
です。サーバーは、text/xml
Content-TypeヘッダーまたはXML解析エラーを適用しません。サーバーが適切なMIMEタイプを設定していない場合は、XMLとしてoverrideMimeType()
を使用して解析することができます。
XMLHttpRequestのopen()関数が同期的に動作するように設定されているため、スクリプトは待機します: 'open(" GET "、" maps/testmap.tmx "、false);'(3番目のパラメータ) – stewe
ああ、OKです。同期的なajax呼び出しは、ユーザーにはあまり役に立たないので、期待していませんでした。次に、xmldocがnullであるという問題があります。 21行目にブレークポイントを設定し、responseXMLの内容を確認する必要があります。 – jfriend00
私も、ちょうどあなたに知らせたいと思いました。 Btw。 cdhowieの答えが正しいので、 'responseXML'が定義されていません。 – stewe
また、サーバーを修正できない場合は、XMLHttpRequestオブジェクトをオーバーライドして強制的にXMLとして解析します。 – jfriend00
mime型をオーバーライドして修正したようです。次の問題へ。ありがとうございました! – jlowgren