У меня проблема с HTTP-запросом от компонента Vue. js к серверу со шлюзом express. Я предполагаю, что проблема в Express шлюзе, потому что даже если микросервис, который должен получить запрос, находится в автономном режиме, ошибка все равно отображается.
Код Vue. js очень прост и выглядит следующим образом:
await this.$http.post('http://localhost:8080/cartItems/',{
user_id: this.userId,
product_id: this.productId,
quantity: productQuantity,
},{
headers:{
'Access-Control-Allow-Origin': '*',
}
}).then(response => {
Vue.$toast.open({
position: 'bottom-right',
type: 'success',
duration: 3000,
message: '--------',
});
})
.catch(errors => {
Vue.$toast.open({
position: 'bottom-right',
type: 'error',
duration: 3000,
message: '--------',
});
});
Ошибка в консоли:
Access to XMLHttpRequest at 'http://localhost:8080/cartItems/' from origin 'http://localhost:10000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Странная вещь (странная для меня) заключается в том, что проблема появляется только с запросом POST, но не с GET request.
Я настроил шлюз с помощью политики cors (см. ниже), следуя документации, но не могу понять, что я делаю неправильно.
policies:
- cors
......
pipelines:
cart:
apiEndpoints:
- cart-view-update-delete
- cart-add
- cart-my
policies:
- cors:
- action:
origin: '*'
methods: ['HEAD','PUT','PATCH','POST','DELETE']
- proxy:
- action:
serviceEndpoint: cart
changeOrigin: true