20

ローカルの JSON ファイルから初期化データをロードする必要がある Web アプリ (実際には、最終的には OS X ダッシュボード ウィジェットになりますが、最初は単純な Web ページとしてプロトタイプを作成することにしました) を作成しています。私のコードは次のようになります。

function loadDatos() {   
    var xobj = new XMLHttpRequest();
    xobj.overrideMimeType("application/json");
    xobj.open('GET', 'datos.json', true);
    xobj.onReadyStateChange = function () {
        if (xobj.readyState == 4) {
            var jsonTexto = xobj.responseText;
            ProcessTheData(jsonTexto);
        }
    }
    xobj.send(null);
}

この関数は、HTML ファイルの BODY タグの onLoad() イベントから呼び出されます。さて、デバッグ時に見たところ、関数は実行されますが、onReadytStateChange イベント ハンドラーは呼び出されません。

私は何をすべきか?XMLHttpRequest を使用してローカル ファイルにアクセスするのは少し奇妙だと思いましたが、この問題に対処するために私が見た新しいチュートリアルは、それが機能するはずだと言っているようです (私が見たドキュメントの 99% は、どのようにローカル ファイルからではなく、リモート サーバーから JSON をロードします)。

Firefox 3.6.10 を使用してテストしていますが、Safari 4 でも試しました。

4

2 に答える 2

9

onreadystatechangeプロパティには大文字がありません。参照: MDC XMLHttpRequest

于 2010-10-09T16:16:13.450 に答える
1

.json拡張子と MIMETYPEを追加しない限りapplication\json、IIS はエラーをスローします。

ここを参照してください: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/cd72c0dc-c5b8-42e4-96c2-b3c656f99ead.mspx?mfr=true

于 2013-01-23T10:57:08.513 に答える