質問編集履歴

3

内容の追記

2022/04/04 12:37

投稿

TsunJapan
TsunJapan

スコア1

test CHANGED
File without changes
test CHANGED
@@ -50,7 +50,7 @@
50
50
  location / {
51
51
  # preflightに対するレスポンス指定
52
52
  if ($request_method = 'OPTIONS') {
53
- add_header Access-Control-Allow-Origin 'https://www.akunoura.kuromaru-curry.jp';
53
+ add_header Access-Control-Allow-Origin '【Next.js側のURL】';
54
54
  add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, HEAD, OPTIONS';
55
55
  add_header Access-Control-Allow-Headers 'Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, access-token, client, uid';
56
56
  #add_header Access-Control-Max-Age 3600;

2

内容の追記

2022/04/04 12:36

投稿

TsunJapan
TsunJapan

スコア1

test CHANGED
File without changes
test CHANGED
@@ -4,3 +4,74 @@
4
4
  ```
5
5
  Next.jsをAWS Amplify、Ruby on Rails APIをAWS EC2にアップロードし、それぞれデプロイには成功しています。
6
6
  nginx.confやRailsのrack-corsなどを触ってみましたが、うまくリクエストが通らず、CORSの初期設定などに詳しい方がおられましたら手順を教えていただけると幸いです。
7
+
8
+
9
+ axios
10
+ ```ここに言語を入力
11
+ async function hoge() {
12
+ await axios
13
+ .post(apiURL + "/hoge", {
14
+ parameter: parameter,
15
+ })
16
+ .then(
17
+ (response) => {
18
+ console.log(response)
19
+ },
20
+ function (error) {
21
+ console.log(error);
22
+ }
23
+ );
24
+ }
25
+ ```
26
+
27
+ nginx.conf
28
+ ```ここに言語を入力
29
+ events {}
30
+ http {
31
+ upstream unicorn {
32
+ # Unicornと連携させるための設定。
33
+ # アプリケーション名を自身のアプリ名に書き換えることに注意。今回であればおそらく
34
+ server unix:/var/www/【api名】/shared/tmp/sockets/unicorn.sock;
35
+ }
36
+
37
+ # {}で囲った部分をブロックと呼ぶ。サーバの設定ができる
38
+ server {
39
+ # このプログラムが接続を受け付けるポート番号
40
+ listen 80;
41
+ # 接続を受け付けるリクエストURL ここに書いていないURLではアクセスできない
42
+ server_name 【apiのURL】;
43
+
44
+ # クライアントからアップロードされてくるファイルの容量の上限を2ギガに設定。デフォ>ルトは1メガなので大きめにしておく
45
+ client_max_body_size 2g;
46
+
47
+ # 接続が来た際のrootディレクトリ
48
+ root /var/www/【apiのディレクトリ】/current/public;
49
+
50
+ location / {
51
+ # preflightに対するレスポンス指定
52
+ if ($request_method = 'OPTIONS') {
53
+ add_header Access-Control-Allow-Origin 'https://www.akunoura.kuromaru-curry.jp';
54
+ add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, HEAD, OPTIONS';
55
+ add_header Access-Control-Allow-Headers 'Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers, access-token, client, uid';
56
+ #add_header Access-Control-Max-Age 3600;
57
+ #add_header Access-Control-Allow-Credentials 'true';
58
+
59
+ add_header Content-Type 'text/plain charset=UTF-8';
60
+ add_header Content-Length 0;
61
+
62
+ return 204;
63
+ }
64
+ try_files $uri/index.html $uri @unicorn;
65
+ }
66
+
67
+ location @unicorn {
68
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
69
+ proxy_set_header Host $http_host;
70
+ proxy_redirect off;
71
+ proxy_pass http://unicorn;
72
+ }
73
+ error_page 500 502 503 504 /500.html;
74
+ }
75
+ }
76
+
77
+ ```

1

内容の追記

2022/04/04 09:28

投稿

TsunJapan
TsunJapan

スコア1

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,6 @@
1
1
  Next.jsで作成したアプリケーションからRails側にaxiosでリクエストを送る際に以下のエラーが発生しています。
2
2
  ```ここに言語を入力
3
- Access to XMLHttpRequest at '【開発環境のRails側のオリジン】' from origin '【開発環境のNext.js側のオリジン】' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value '【本番環境のNext.js側のオリジン】' that is not equal to the supplied origin.
3
+ Access to XMLHttpRequest at '【Rails側のオリジン】' from origin '【Next.js側のオリジン】' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header has a value '【Next.js側のオリジン】' that is not equal to the supplied origin.
4
4
  ```
5
+ Next.jsをAWS Amplify、Ruby on Rails APIをAWS EC2にアップロードし、それぞれデプロイには成功しています。
6
+ nginx.confやRailsのrack-corsなどを触ってみましたが、うまくリクエストが通らず、CORSの初期設定などに詳しい方がおられましたら手順を教えていただけると幸いです。