0

.json ファイルに書き込んでいますが、問題なくアクセスできるようにヘッダーを含める必要があります。index.php ファイルに追加する必要があるヘッダー:

header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');

.json ファイルを作成するコードのスニペットは次のとおりです。

public function saveCalendarAsFile() {
    $file2 = fopen("{$this->name}.txt", 'w');
    fwrite($file2, json_encode($this->events));
    fclose($file2);
}    

public function saveCalendarAsFile() {
    $file2 = fopen("{$this->name}.json", 'w');
    fwrite($file2, json_encode($this->events));
    fclose($file2);
}

ヘッダーをどこに配置しても (この投稿が示唆するように、1、2、または 3 行目の前)、外部ファイルの HTTP 応答は変更されません (現在、text/plain としてリストされています)。

php ファイルのドキュメントには同じヘッダーがありますが、複数の投稿によると、「echo」ステートメントの前に来る必要があります。私のコードは echo ステートメントを使用していないため (外部ファイルに書き込んでいるため)、.json ファイルに影響するように、ヘッダーを配置する別の場所が必要です。前もって感謝します。

ここに画像の説明を入力

4

1 に答える 1

1

ターゲット ファイルをサーバーに保存する際にヘッダーを設定する必要はありませんが、そのファイルに (クロスドメインで) アクセスできるようにする場合は、Access-Control-Allow-Origin を設定する必要があります (正確に要求するとき)。サーバーからのそのファイル)。

あなたの場合: サーバーに json ファイル {$this->name}.json を保存しました。そのファイルを受信して​​ (Access-Control-Allow-Origin) を設定する場合は、PHP を使用してそのファイルを読み取る必要があります。たとえば、ヘッダーを設定します。

ファイル名が myjson.json であることを考慮してください。その場合、そのファイルを直接要求してはならず、php を使用してファイルを読み取り、出力してください。

jsonnreador.php
<?php
header('Content-Type: application/json');
header('Access-Control-Allow-Origin: *');
echo file_get_contents('myjson.json');
?>
于 2013-02-06T06:57:30.543 に答える