4

私は小さなHTML5Webアプリを開発しています。このアプリは、ユーザーがクロスプラットフォームのブラウザーでオフラインで使用できます。彼らはCDまたはUSBでwepアプリを受け取ります-スティックしてHTMLファイルをダブルクリックします。次に、HTMLファイルはCSS、JavaScriptファイルなどをすべて同じディレクトリ/サブディレクトリからローカルにロードします。

これまでのところ、すべてが順調です。しかし、JSONを含むファイル(これもローカルで、まったく同じディレクトリから)をロードし、そのデータを使用してDOMの一部を構築したいと思います。

    $.getJSON("playlistcontent.json", function (json) {
        //use the data...
    });

ここで私は有名なものに出くわしました

Origin nullは、Access-Control-Allow-Originでは許可されていません

エラー。これについては、非常によく似た質問でさえ、多くのリソースがあります。ただし、これは意図的にローカルで行われるため、提案されたソリューションは機能しません。

ただし、AJAXは「非同期」であるため、おそらくより「同期」またはその他のより良いアプローチがあると思いますか?JSONPはどうですか?

注:セキュリティチェックを無効にしてブラウザ(特にChrome)を起動できることは知っていますが、これはユーザーのオプションではありません。

4

3 に答える 3

4

ここで同様の質問に答えました。

を含むHTML5 のFile APIFileReaderを使用して、結果を呼び出すことができますJSON.parse

于 2013-02-14T20:24:37.937 に答える
1

JSONP で Felix Kling のアプローチを使用します。コールバック関数でデータ ファイルをラップします。

(function(data) {
  // Do things with your data object here
})(
  // Put your data object here as the argument to the callback
);

このスクリプトファイルをタグでインクルードすると、コールバック関数が自動的に実行されます。

于 2013-02-14T20:39:33.680 に答える
1

私は Felix Kling のアプローチが好きです。JSON データだけが必要な場合は、JS 変数を設定してデータをロードし、スクリプト タグを使用して JSON ファイルをロードするだけです。ただし、それでは不十分な場合は、http://www.server2go-web.de/のようなソリューションを使用して、CD から Web サーバーを実行し、ローカル ファイルの制限をバイパスすることができます。

于 2013-02-14T20:23:57.353 に答える