私はExpress Gateway + Axios(React)+ Expressを使用することをお勧めしますが、私はCors Erroを受けています、私はすでに多くのことをしましたが、何も働いていませんでした。
Cross-Origin Resource Sharing error: PreflightMissingAllowOriginHeader
_
私のEXPRESS
は次のようになります。
const corsOptions = {
Origin: '*',
methods: ['POST', 'GET', 'PATCH', 'DELETE'],
allowedHeaders: ['Content-Type', 'Authorization']
}
app.use(cors(corsOptions));
_
私の EXPRESS-GATEWAY
:
http:
port: 8080
admin:
port: 9876
Host: localhost
apiEndpoints:
api:
Host: "localhost"
paths:
- '/api/B/*'
- '/api/A/*'
serviceEndpoints:
appname:
urls:
- 'http://localhost:8000'
policies:
- jwt
- cors
- expression
- log
- proxy
- rate-limit
pipelines:
default:
apiEndpoints:
- api
policies:
- cors:
- action:
Origin: ["*"]
methods: [ "HEAD", "PUT", "PATCH", "POST", "GET", "DELETE" ]
credentials: true
allowedHeaders: ['Content-type','Authorization','Origin','Access-Control-Allow-Origin','Accept','Options','X-Requested-With']
- jwt:
- action:
secretOrPublicKey: code
checkCredentialExistence: false
- proxy:
- action:
serviceEndpoint: appname
changeOrigin: true
_
私のAXIOS
:
const headers = {
headers: {
"Authorization": authToken,
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Credentials": true
},
}
axios.get(`${API_PRIVATE_URL}/user/profile`, {
crossdomain: true
}, {
withCredentials: true
}, headers)
_
私はもう何をすべきかわかりません。誰かが私を助けますか?
私はすでにいくつかの投稿に行きましたが、何も働いていません。
編集:コントローラーのどちらにも行きませんでした。 edit2:Postmanで使用でき、それは期待どおりに機能しました...
Express/Express-Gatewayで許可されたメソッドのリストにある「削除」の後に「オプション」を追加します。
const corsOptions = {
Origin: '*',
methods: ['POST', 'GET', 'PATCH', 'DELETE', 'OPTIONS'],
allowedHeaders: ['Content-Type', 'Authorization']
}
app.use(cors(corsOptions));
_
http:
port: 8080
admin:
port: 9876
Host: localhost
apiEndpoints:
api:
Host: "localhost"
paths:
- '/api/B/*'
- '/api/A/*'
serviceEndpoints:
appname:
urls:
- 'http://localhost:8000'
policies:
- jwt
- cors
- expression
- log
- proxy
- rate-limit
pipelines:
default:
apiEndpoints:
- api
policies:
- cors:
- action:
Origin: ["*"]
methods: [ "HEAD", "PUT", "PATCH", "POST", "GET", "DELETE", "OPTIONS" ]
credentials: true
allowedHeaders: ['Content-type','Authorization','Origin','Access-Control-Allow-Origin','Accept','Options','X-Requested-With']
- jwt:
- action:
secretOrPublicKey: code
checkCredentialExistence: false
- proxy:
- action:
serviceEndpoint: appname
changeOrigin: true
_