0

JS から単純な .CSV ファイルをロードする必要がありますが (ここでは問題ではありません)、「スクリプト」は移植可能である必要があり (競技会の画面として使用します)、スコア データは CSV に挿入されます。 、JS は CSV に基づいてデータを更新します。

しかし、ここでの私の問題は次のとおりです。Apacheまたはサーバーなしで実行する必要があるため、それを使用する人々がApacheとインターネットを持っていることを確認できないためです...フォルダーから開く必要があります(HTMLのみJS、および .CSV と同じフォルダー内のファイル)

jQuery ( $.get(..., ..., "jsonp")、および$.get()) からファイルにアクセスしようとすると、Chrome は次のエラーを出力します。

XMLHttpRequest cannot load file:PATHTOTHEFILE Origin null is not allowed by Access-Control-Allow-Origin.

これは、ブラウザーがそのコンテンツをブロックするために発生します (セキュリティ上の理由から)。

この問題にどのように「対処」できますか、またはより良い解決策を知っていますか?単純なデータを保存して、セキュリティの問題なしに JS から読み取ることができますか?

ありがとう

4

2 に答える 2

1

--allow-file-access-from-files を chrome 起動コマンド ラインに追加する必要があります。

BAT ファイルを作成し、ユーザーにそれをクリックしてアプリを起動してもらいます

%LOCALAPPDATA%\Google\Chrome\Application\chrome.exe ^
--allow-file-access-from-files ^
http://bing.co.uk

http:// をファイルの URL に置き換えます。

于 2012-10-30T15:23:22.737 に答える
0

html5 FileReader を使用できます。ただし、この方法ではファイルを選択する必要があります。

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<label for="files">Path to file: </label><input type="file" id="files" name="files[]"/>
<script>
function handleFileSelect(evt) {
        var files = evt.target.files;
        var f;
        for (var i = 0; f = files[i]; i++) {
            if (!f.type.match('text.*')) {
                continue;
            }
            var reader = new FileReader('test.html');
            reader.onloadend = (function () {
                return function(e) {
                  alert(e.target.result);
                };
            })();
            reader.readAsText(f);
        }
    }



    var fileSerf= document.getElementById('files');
    if (fileSerf){
        fileSerf.addEventListener('change', handleFileSelect, false);
    }
</script>
</body>
</html>

例: http://jsbin.com/ozeyag/293/

于 2012-10-31T03:36:26.280 に答える