こんにちはstackoverflowers!
Angular と Laravel を連携させるのに苦労しています。Laravelとは別にAngularを使いたい。forge を使用して app.domain.com と api.domain.com の 2 つのドメインをセットアップしました。app.domain.com または localhost から api.domain.com にリクエストを送信しようとすると、'Access-Control-Allow-Origin' (=CORS?) エラーが発生しました。
エラー:
XMLHttpRequest はhttp://api.domain.com/api/authenticateを読み込めません。プリフライト要求への応答がアクセス制御チェックに合格しません: 要求されたリソースに 'Access-Control-Allow-Origin' ヘッダーが存在しません。したがって、オリジン「http://localhost:8888」へのアクセスは許可されていません。
何時間もグーグルで検索しましたが、わかりません。CORSミドルウェアをLaravelに追加しようとしましたが、効果がありません。
{
return $next($request)
->header('Access-Control-Allow-Origin', '*')
->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')
->header('Access-Control-Max-Age', '1000')
->header('Access-Control-Allow-Headers', 'Content-Type, Authorization, X-Requested-With');
}
エラーはまだ表示されています。奇妙な部分は、get リクエストが許可されていることです。post リクエストのみが何らかの理由で許可されていません。
通常、私はサーバーとしてAPACHEを使用していますが、Laravel Forgeはnginxを使用しています。これはnginxと関係がありますか?
私のnginx設定ファイル:
server {
listen 80;
server_name api.domain.be;
root /home/forge/api.domain.be/public;
# FORGE SSL (DO NOT REMOVE!)
# ssl_certificate;
# ssl_certificate_key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_log /var/log/nginx/api.onlinevaten.be-error.log error;
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
誰でも私を助けることができますか?すごいでしょう!