![Nginx パッチ リクエストが無効な CORS リクエストで終了する](https://rvso.com/image/770085/Nginx%20%E3%83%91%E3%83%83%E3%83%81%20%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%81%8C%E7%84%A1%E5%8A%B9%E3%81%AA%20CORS%20%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%81%A7%E7%B5%82%E4%BA%86%E3%81%99%E3%82%8B.png)
セットアップは簡単です。
同じネットワーク内の 3 つの Docker コンテナ。
- ReactJs - nginx サーバー上でのプロダクションビルド
- スプリングブート
- マイスク
GET、POSTリクエストはうまく機能しますが、PATCHリクエストを使用しようとすると、
無効な CORS リクエスト
2021/09/01 23:17:27 [notice] 31#31: *5 "/api/(.*)" matches "/api/task/assign/5/S01", client: 172.18.0.1, server: localhost, request: "PATCH /api/task/assign/5/S01 HTTP/1.1", host: "localhost", referrer: "http://localhost/operator/controlpanel"
2021/09/01 23:17:27 [notice] 31#31: *5 rewritten data: "/task/assign/5/S01", args: "", client: 172.18.0.1, server: localhost, request: "PATCH /api/task/assign/5/S01 HTTP/1.1", host: "localhost", referrer: "http://localhost/operator/controlpanel"
172.18.0.1 - - [01/Sep/2021:23:17:27 +0000] "PATCH /api/task/assign/5/S01 HTTP/1.1" 403 31 "http://localhost/operator/controlpanel" "Mozilla/5.0 (Windows NT xx; Win64; x64; rv:xx) Gecko/20100101 Firefox/91.0" "-"
私のnginx設定
server {
listen 80;
server_name localhost;
expires -1;
etag off;
proxy_no_cache 1;
rewrite_log on;
location / {
root /usr/share/nginx/html;
try_files $uri /index.html;
}
location /api {
rewrite /api/(.*) /$1 break;
proxy_pass http://app:8080;
proxy_pass_request_headers on;
default_type application/json;
}
}
Spring Boot の終了時にリクエスト情報を受け取っていないため、Spring サーバーに送信する前にブロックされたと想定しています。
何が間違っているのか分かりますか?
答え1
アプリが 403 Forbidden エラーを送信したので、何かが起こっているはずです。アプリが実際にログに記録されていることを確認してください。 – Michael Hampton 2021 年 9 月 2 日 16:13
何らかの理由で、Spring はそれをログに記録しませんでした。同じ問題に直面した人は、cors フィルターの前にリクエストをデバッグしてみてください。