[解決済み] .htaccessでcorsを有効にする
2023-04-25 22:03:27
質問
SLIM PHPフレームワークで基本的なRESTfulサービスを作成し、現在、Angular.jsプロジェクトからそのサービスにアクセスできるように配線しようとしています。Angular がすぐに CORS をサポートすることを読みましたが、必要なのは次の行を追加することだけでした。
Header set Access-Control-Allow-Origin "*"
を私の.htaccessファイルに追加するだけです。
私はこれを行い、私のRESTアプリケーションはまだ動作しています(悪い.htaccessによる500内部サーバーエラーはありません)。 test-cors.org からテストしようとすると、エラーがスローされます。
Fired XHR event: loadstart
Fired XHR event: readystatechange
Fired XHR event: error
XHR status: 0
XHR status text:
Fired XHR event: loadend
私の.htaccessファイルは次のようなものです。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /index.php [QSA,L]
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
これを正しく動作させるために .htaccess に追加する必要があるものはありますか、または私のサーバーで CORS を有効にする別の方法はありますか?
どのように解決するのですか。
とにかくすべてが index.php に転送されていたので、.htaccess ファイルの代わりに PHP でヘッダーを設定してみようと思ったのですが、うまくいきました! やったー! この問題を抱えている他の人のために、index.php に追加したものは次のとおりです。
// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
// should do a check here to match $_SERVER['HTTP_ORIGIN'] to a
// whitelist of safe domains
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
}
に関する彼の回答は、slashingweapon に謝意を表します。 この質問
私はSlimを使っているので、OPTIONSリクエストがHTTP 200レスポンスを得るためにこのルートを追加しました。
// return HTTP 200 for HTTP OPTIONS requests
$app->map('/:x+', function($x) {
http_response_code(200);
})->via('OPTIONS');
関連
-
[解決済み] [Solved] Fatal error: メンバ関数bind_param()のbooleanに対する呼び出し [重複] [重複
-
[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない
-
[解決済み】chromeの「net : Failed to load resource: net::ERR_SPDY_PROTOCOL_ERROR" は何がおかしいのか?
-
phpのAllowed memory size of 134217728 bytes枯渇問題の解決法
-
[解決済み] オートロードとは何ですか; spl_autoload、__autoload、spl_autoload_register はどのように使うのですか?
-
[解決済み] PHP product.php?id=1 のような URL を作成する方法
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] REST APIからデータを取得しようとしたときに、要求されたリソースに'Access-Control-Allow-Origin'ヘッダーが存在しない。
-
[解決済み] プリフライト要求に対する応答がアクセス制御チェックを通過しない
-
[解決済み】AngularJS がクロスオリジンリソースに対して OPTIONS HTTP リクエストを実行する場合
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] [Solved] Fatal error: メンバ関数prepare()のNULLでの呼び出し
-
[解決済み】php, mysql - データベースへの接続数が多すぎるエラー
-
[解決済み】 libapache2-mod-php7 パッケージが見つからない。
-
[解決済み】SSLピア証明書またはSSHリモートキーがOKでなかった
-
[解決済み】chromeの「net : Failed to load resource: net::ERR_SPDY_PROTOCOL_ERROR" は何がおかしいのか?
-
phpのAllowed memory size of 134217728 bytes枯渇問題の解決法
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について
-
[解決済み】警告: file_get_contents(): https:// ラッパーがサーバー構成ですべて無効になっています。
-
[解決済み] PHP product.php?id=1 のような URL を作成する方法
-
[解決済み】Cross-Origin Request Headers(CORS)とPHPヘッダとの関係