3

これは、ローカル サーバーで実行するときに Chrome で機能します。ただし、NodeWebkit に転送すると、ステータス === 0 で失敗します。

function ReadText(filename) {
    var txtFile = new XMLHttpRequest();
    txtFile.open("GET", filename, true);
    txtFile.onreadystatechange = function () {
        if (txtFile.readyState === 4) // Makes sure the document is ready to parse.
        {
            if (txtFile.status === 200) // Makes sure it's found the file.
            {
                g_FileLoadContents = txtFile.responseText;
                ReadFile();
            }
        }
    }
    txtFile.send(null);
};

g_FileLoadContents はグローバルであり、ReadFile は g_FileLoadContents で何らかの作業を行う関数です... しかし、NodeWebkit ではそこまで到達しません (繰り返しますが、ローカル サーバーの場合、Chrome ではすべて問題ないことを強調します)。

NodeWebkit では、txtFile.readyState が最大 4 まで変化するのを監視していますが、txtFile.status は 0 です。

なぜステータスが0なのですか?nodeWebkit を使用する場合、上記のコードでステータスを 0 にする必要がありますか?

私は非常に混乱しているので、誰かが説明できることを願っています。

4

1 に答える 1

1

HTTP ステータス コードは Web サーバーによって返されます。Chrome でこれを実行している場合、ローカル サーバーは 200 を返すと思われますが、node-webkit は 0 ( Unknown? ) を返すだけです。

ただし、通常、ローカルファイルの読み取りは制限されています。上記のコードは実際にファイルの内容を生成しますか? それでも、node-webkit でファイルを読み取ろうとしている場合は、node fs モジュールを使用してファイルシステムに直接アクセスすることをお勧めします。

于 2013-08-23T15:09:03.797 に答える