Contoh error CORS yang sering ditemui kurang lebih seperti dibawah ini
Origin https://api.jaranguda.com is not allowed by Access-Control-Allow-Origin
CORS harus disetting dari sisi server, bukan dari client. Bila backend anda belum disetting CORSnya dan anda menggunakan HAProxy, bisa menyetting CORS dengan cara berikut ini.
Download cors.lua
download cors.lua dari repository HAProxy
wget https://raw.githubusercontent.com/haproxytech/haproxy-lua-cors/master/lib/cors.lua -O /etc/haproxy/cors.lua
Setting CORS dengan HAProxy
Edit file /etc/haproxy/haproxy.cfg tambahkan dibawah global
lua-load /etc/haproxy/cors.lua
dibagian frontend tambahkan
http-request lua.cors http-response lua.cors "GET,PUT,POST,OPTIONS,PATCH" "api.jaranguda.com,dev-api.jaranguda.com,localhost:3000"
Bila anda mengijinkan API anda diakses oleh siapa saja (public) nama domain diatas cukup diganti dengan *, kalo hanya untuk beberapa domain tambahkan domain-domain/ip yang diijinkan.
Contoh lengkap konfigurasi dasar HAProxy
global
log stdout local0
lua-load /etc/haproxy/cors.lua
defaults
mode http
timeout connect 5s
timeout client 5s
timeout server 5s
log global
frontend api-jaranguda
bind :80
http-request lua.cors
# localhost:3000 untuk local development
http-response lua.cors "GET,PUT,POST,OPTIONS,PATCH" "api.jaranguda.com,dev-api.jaranguda.com,localhost:3000"