-1

XML ファイルを読み取ってデータを出力するスクリプトを作成しています。Web サーバーで実行すると完全に動作しますが、ローカル マシンからは実行できません。(「542Data.xml」ファイルは、サーバーと私のコンピューターの両方でHTMLページと同じフォルダーに保存されており、すべてのファイルのバージョンが同じであることを確認しました。FirefoxとChromeで試しましたが、同じ結果でした.)

<div id="output"></div>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<script>
$(document).ready(function()
{
    $.ajax({
        type: "GET",
        url: "542Data.xml",
        dataType: "xml",
        success: parseXml
    });
});

function parseXml(xml)
{
    $(xml).find("point").each(function(index)
    {
        $("#output").append("Name: " + $(this).attr("name") + "<br />");
    });
}

</script>

XML は次のように構成されています。

<?xml version="1.0"?>
<destinations>
    <point name="Tot Lot at Bryan Park"> 
        <lat>39.15611</lat>
        <long>-86.52664</long>
        <type>outdoors</type>
    </point>
    <point name="Playground at Cascades Park"> 
        <lat>39.19633</lat>
        <long>-86.53581</long>
        <type>outdoors</type>
    </point>
</destinations>

これをローカルで機能させるには、何を変更する必要がありますか?

編集:私は間違っていました.Firefoxで動作しています. (恥ずかしい!)

4

5 に答える 5

3

あなたのスクリプトは Firefox でうまく動作します。

Chrome には、やりたいこと ( file:///AJAX リクエストに使用) を許可しないセキュリティ機能があります。次のコマンドでブラウザを起動する必要があります。

chrome --disable-web-security

セキュリティチェックを無効にします。(--allow-file-access-from-filesトリックも行うかもしれませんが、まだテストしていません)

警告:セキュリティ チェックを無効にすると、ブラウザのセキュリティに影響するため、一時的な開発目的でのみ使用してください。長期間にわたってローカル マシンからコードを実行する予定がある場合は、ローカル マシンに Web サーバーをインストールすることを検討してください。

于 2013-04-14T20:03:18.927 に答える
0

サーバー上で実行されていますが、マシン上では実行されていません。ほら、ajaxリクエストにはローカルサーバーが実行されている必要があります。機能させるには、マシンでローカルサーバーを起動します。たとえば、Windows の場合は WAMP をダウンロードし、Linux の場合は LAMP をインストールします。ファイルを www フォルダーに配置します。次に、ローカル サーバーを起動し、localhost/your_file_name を使用してファイルにアクセスします。そうすれば、あなたが望む結果が得られます。

于 2013-04-14T19:59:59.347 に答える
0

「ローカルで作業する」とは、フォルダーに html ファイルと xml ファイルがあり、それをダブルクリックして HTML ファイルを開くことを意味する場合、方法はありません。

ローカルで動作させるには、http リクエストを解決する Web サーバーが必要です。ファイル システム上のローカル ファイルを開くことは、ここで起こっていることではありません。 .ajax()サーバーリクエストを行っています。サーバーがないと機能しません。

于 2013-04-14T19:54:27.007 に答える
0

何を使って開発していますか?使用している開発サーバーが XML ファイルを提供できるかどうかを確認してください。

于 2013-04-14T19:55:44.277 に答える
0

与えられた(小さな)情報によると。セキュリティ上の理由、つまり Google のリポジトリから jquery をインポートしている可能性があります。さらにコードを入力するか、firefox のエラー コンソールを確認してください - ctr+shift+j で、エラーがあればそれをコピーして貼り付けるか、jquery をダウンロードしてローカルの場所にパスと共に含めます。

于 2013-04-14T19:56:01.523 に答える