質問編集履歴
3
内容の追記
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 '
|
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
内容の追記
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
内容の追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
Next.jsで作成したアプリケーションからRails側にaxiosでリクエストを送る際に以下のエラーが発生しています。
|
2
2
|
```ここに言語を入力
|
3
|
-
Access to XMLHttpRequest at '【
|
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の初期設定などに詳しい方がおられましたら手順を教えていただけると幸いです。
|